200 likes | 383 Views
Build and run Docker containers leveraging NVIDIA GPUs. Containerizing GPU applications provides several benefits, among them: * Reproducible builds * Ease of deployment * Isolation of individual devices * Run across heterogeneous driver/toolkit environments * Requires only the NVIDIA driver to be installed * Enables "fire and forget" GPU applications * Facilitate collaboration
E N D
USING DOCKER FOR GPU ACCELERATED APPLICATIONS Felix Abecassis, Systems Software Engineer Jonathan Calmels, Systems Software Engineer
GPU COMPUTING CUDA Ecosystem Applications NVIDIA DOCKER Challenges Our Solution AGENDA DEMOS GPU Isolation Machine Learning Remote Deployment 2
GPU COMPUTING nvidia.com/object/gpu-accelerated-computing.html 3
HETEROGENEOUS COMPUTING CPU GPU + Optimized for parallel tasks Optimized for serial tasks 4
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]; } 5
ECOSYSTEM LIBRARIES AmgX cuBLAS COMPILER DIRECTIVES x86 PROGRAMMING LANGUAGES 6
APPLICATIONS: DEEP LEARNING INTERNET & CLOUD Image Classification Speech Recognition Language Translation Language Processing Sentiment Analysis Recommendation MEDICINE & BIOLOGY Cancer Cell Detection Diabetic Grading Drug Discovery MEDIA & ENTERTAINMENT Video Captioning Video Search Real Time Translation SECURITY & DEFENSE Face Detection Video Surveillance Satellite Imagery AUTONOMOUS MACHINES Pedestrian Detection Lane Tracking Recognize Traffic Sign 8
GPU-ACCELERATED DEEP LEARNING WATSON CHAINER THEANO MATCONVNET TENSORFLOW CNTK CAFFE TORCH 9
NVIDIA DOCKER github.com/NVIDIA/nvidia-docker 10
CHALLENGES A Typical Cluster Ubuntu 14.04 Drivers 352 4x Maxwell CentOS 7 Drivers 346 4x Kepler Ubuntu 16.04 Drivers 362 8x Pascal CUDA 7.5 CUDA 7.0 cuDNN 3 CUDA 7.5 cuDNN 4 CUDA 8.0 Patches 11
PACKAGING DRIVER FILES? Never install the driver in the Dockerfile, not portable! 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 sh NVIDIA-Linux-x86_64-361.42.run --silent --no-kernel-module RUN 12
INTERNALS HTTP + SSH 3 LDCACHE + NVML HTTP + UNIX NVIDIA Docker Plugin NVIDIA Docker 1 6 HTTPS Docker Daemon 4 Docker CLI NVIDIA Drivers HTTPS 2 5 HTTPS Docker Registry CUDA 7.5 TENSORFLOW CUDA 8.0 CAFFE 14
DOCKERHUB IMAGES Ubuntu 14.04 Ubuntu 16.04 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/Caffe 0.14.2 cuDNN v4 devel cuDNN v4 devel NVIDIA/Caffe 0.14.5 cuDNN v5 devel DIGITS 3.0 DIGITS 3.3 CNTK BVLC/Caffe TensorFlow 15
GPU APPLICATIONS WORKFLOW Container Based Applications GPU-Accelerated Data Center Video Transcoding Image Processing Deep Learning HPC Visualization Research/Develop Test/Package Deploy 16
LEARN MORE www.nvidia.com/dgx1 17