BUILDING A GPU-FOCUSED CI SOLUTION

Similar documents
Containerizing GPU Applications with Docker for Scaling to the Cloud

OpenShift Roadmap Enterprise Kubernetes for Developers. Clayton Coleman, Architect, OpenShift

Azure DevOps. Randy Pagels Intelligent Cloud Technical Specialist Great Lakes Region

Accelerate at DevOps Speed With Openshift v3. Alessandro Vozza & Samuel Terburg Red Hat

Jenkins: A complete solution. From Continuous Integration to Continuous Delivery For HSBC

Developing and Testing Java Microservices on Docker. Todd Fasullo Dir. Engineering

Docker for People. A brief and fairly painless introduction to Docker. Friday, November 17 th 11:00-11:45

Continuous Delivery for Cloud Native Applications

SBB. Java User Group 27.9 & Tobias Denzler, Philipp Oser

Continuous Delivery the hard way with Kubernetes. Luke Marsden, Developer

FROM VSTS TO AZURE DEVOPS

Con. Continuous Integration

Continuous integration & continuous delivery. COSC345 Software Engineering

DEPLOYMENT MADE EASY!

YOUR APPLICATION S JOURNEY TO THE CLOUD. What s the best way to get cloud native capabilities for your existing applications?

Automating the Build Pipeline for Docker Container

Sunil Shah SECURE, FLEXIBLE CONTINUOUS DELIVERY PIPELINES WITH GITLAB AND DC/OS Mesosphere, Inc. All Rights Reserved.

NVIDIA DGX SYSTEMS PURPOSE-BUILT FOR AI

USING GIT FOR AUTOMATION AND COLLABORATION JUSTIN ELLIOTT - MATT HANSEN PENN STATE UNIVERSITY

Continuous Integration and Delivery with Spinnaker

Deployment Patterns using Docker and Chef

Kuber-what?! Learn about Kubernetes

DevOps Online Training

Orchestrating the Continuous Delivery Process

Container Orchestration on Amazon Web Services. Arun

ACCELERATE APPLICATION DELIVERY WITH OPENSHIFT. Siamak Sadeghianfar Sr Technical Marketing Manager, April 2016

MICROSOFT AND SAUCE LABS FOR MODERN SOFTWARE DELIVERY

Supporting GPUs in Docker Containers on Apache Mesos

Kuberiter White Paper. Kubernetes. Cloud Provider Comparison Chart. Lawrence Manickam Kuberiter Inc

Jenkins User Conference Israel. #jenkinsconf. CI / Liveperson. Gidi Samuels. July 16, #jenkinsconf

Bright Cluster Manager: Using the NVIDIA NGC Deep Learning Containers

A DEVOPS STATE OF MIND. Chris Van Tuin Chief Technologist, West

Onto Petaflops with Kubernetes

S INSIDE NVIDIA GPU CLOUD DEEP LEARNING FRAMEWORK CONTAINERS

IBM POWER SYSTEMS: YOUR UNFAIR ADVANTAGE

Go Faster: Containers, Platforms and the Path to Better Software Development (Including Live Demo)

AGILE DEVELOPMENT AND PAAS USING THE MESOSPHERE DCOS

Going Journey to Docker Production. Add picture here. Bret Fisher. DevOps Consultant Docker Captain Author of Udemy's Docker Mastery

Jenkins CI for MacDevOps. Tim Sutton Concordia University, Faculty of Fine Arts Montreal

FIVE REASONS YOU SHOULD RUN CONTAINERS ON BARE METAL, NOT VMS

Kubernetes 101. Doug Davis, STSM September, 2017

Simplified CICD with Jenkins and Git on the ZeroStack Platform

A DEVOPS STATE OF MIND. Chris Van Tuin Chief Technologist, West

Using DC/OS for Continuous Delivery

Singularity CRI User Documentation

UP! TO DOCKER PAAS. Ming

Disclaimer This presentation may contain product features that are currently under development. This overview of new technology represents no commitme

NetApp Jenkins Plugin Documentation

Seven Habits of Highly Effective Jenkins Users

The future of data centers

Getting Started With Containers

Automating Security Practices for the DevOps Revolution

4 Effective Tools for Docker Monitoring. By Ranvijay Jamwal

IBM Bluemix compute capabilities IBM Corporation

DevOps Course Content

DevNet Workshop-Hands-on with CloudCenter and Jenkins

Continuous Delivery of Micro Applications with Jenkins, Docker & Kubernetes at Apollo

CONTINUOUS INTEGRATION; TIPS & TRICKS

Lessons Learned: Deploying Microservices Software Product in Customer Environments Mark Galpin, Solution Architect, JFrog, Inc.

Docker Universal Control Plane Deploy and Manage On-Premises, Your Dockerized Distributed Applications

Amazon EC2 Container Service: Manage Docker-Enabled Apps in EC2

How Container Runtimes matter in Kubernetes?

Important DevOps Technologies (3+2+3days) for Deployment

CONTAINERS AND MICROSERVICES WITH CONTRAIL

Distributed CI: Scaling Jenkins on Mesos and Marathon. Roger Ignazio Puppet Labs, Inc. MesosCon 2015 Seattle, WA

Rok: Decentralized storage for the cloud native world

NVMe over Fabrics (NVMe-oF) For Containers

KUBERNETES IN A GROWN ENVIRONMENT AND INTEGRATION INTO CONTINUOUS DELIVERY

Buenos Aires 31 de Octubre de 2018

VC3. Virtual Clusters for Community Computation. DOE NGNS PI Meeting September 27-28, 2017

Containers, Serverless and Functions in a nutshell. Eugene Fedorenko

ContainerOps - DevOps Orchestration. Quanyi Ma

Docker and Oracle Everything You Wanted To Know

DOWNLOAD OR READ : CONTINUOUS INTEGRATION WITH JENKINS PDF EBOOK EPUB MOBI

DevOps Technologies. for Deployment

Multi-Arch Layered Image Build System

GPU ACCELERATED DATABASE MANAGEMENT SYSTEMS

Developing Kubernetes Services

Docker Live Hacking: From Raspberry Pi to Kubernetes

Taming your heterogeneous cloud with Red Hat OpenShift Container Platform.

Java Architectures A New Hope. Eberhard Wolff

Con$nuous Deployment with Docker Andrew Aslinger. Oct

Setting up Kubernetes with Day 2 in Mind. Angela Chin, Senior Software Engineer, Pivotal Urvashi Reddy, Senior Software Engineer, Pivotal

Bitte decken Sie die schraffierte Fläche mit einem Bild ab. Please cover the shaded area with a picture. (24,4 x 7,6 cm)

DOCKER 101 FOR JS AFFICIONADOS. Christian Ulbrich, Zalari UG

A Hands on Introduction to Docker

Docker at Lyft Speeding up development Matthew #dockercon

Harbor Registry. VMware VMware Inc. All rights reserved.

Parallelizing CI using Docker Swarm-Mode

Integrated Management of OpenPOWER Converged Infrastructures. Revolutionizing the Datacenter

IBM Cloud Developer Tools (IDT) and App Service Console Overview

ovirt and Docker Integration

HOW TO STAND OUT IN DEVOPS

Knative: Building serverless platforms on top of Kubernetes

From development to production

Developing, Debugging, and Optimizing GPU Codes for High Performance Computing with Allinea Forge

StratusLab Cloud Distribution Installation. Charles Loomis (CNRS/LAL) 3 July 2014

Fixing the "It works on my machine!" Problem with Docker

Linux System Management with Puppet, Gitlab, and R10k. Scott Nolin, SSEC Technical Computing 22 June 2017

CONTINUOUS DELIVERY WITH EFFICIENT AUTOMATED TESTING IN CLOUD

Transcription:

BUILDING A GPU-FOCUSED CI SOLUTION Mike Wendt @mike_wendt github.com/nvidia github.com/mike-wendt

Need for CPU CI Challenges of GPU CI Methods to Implement GPU CI AGENDA Improving GPU CI Today Demo Lessons Learned Next Steps Getting Started 2

NEED FOR GPU CI The number of GPU-accelerated applications are growing The leading open-source software projects from Apache and others rely on CI External demand Partners are collaborating with us on projects like GPU Open Analytics Initiative (GoAi) and need GPU CI to ensure stable builds Internal demand Large code-bases internally for all kinds of GPU-accelerated applications require testing across different platforms/hardware Performance testing of new drivers and hardware needs repeatable methods to make sure we continue to deliver performance 3

CHALLENGES OF GPU CI GPUs bring a different set of problems than traditional CI Need GPUs Cloud or physical Resource management Expose GPU configuration to developers Driver, CUDA, GPU type Many traditional tools like Travis CI, Circle CI, and others do not support GPUs For good reasons, dangers of misuse For tools that offer support, many times it is not native Still feels hacky, but it gets the job done 4

METHODS TO IMPLEMENT GPU CI 5

BARE-METAL + GPU Fastest to get started with the most limitations Benefits Reduces complexity with minimal setup Works well for a small set of projects that use the same/similar dependencies Challenges Managing dependencies can be tricky for multiple projects Limits ability to test multiple platforms, limited to installed CUDA/OS Resource management is difficult 6

BARE-METAL + GPU Fastest to get started with the most limitations CI Environment Source Code Tests Test Results GPUs Server 7

DOCKER + NVIDIA CONTAINER RUNTIME github.com/nvidia/nvidia-docker Docker runtime that allows for GPU passthru on Linux systems Works with Debian/Ubuntu, RHEL/CentOS, and Amazon Linux Allows for testing multiple CUDA/OS environments on one machine Includes options to set supported driver operations and restrict GPU visibility 8

DOCKER + GPU Easier to use with some hacking still required Benefits Ability to test multiple CUDA/OS combinations Handles dependency management for all projects Enables fine-grained resource management Supports scale needed for larger projects and teams Challenges Typically requires pre-built Docker images with environments for testing and code to test injected into container for testing Configuration tends to be a lot of environment variables and cumbersome to manage GitLab CI and Jenkins require runners for multiple nodes 9

DOCKER + GPU Easier to use with some hacking still required CI Environment Dockerfile or Container Custom Config Docker Container Source Code Tests Test Results Docker + NVIDIA Runtime GPUs Server 10

DOCKER + GPU Easier to use with some hacking still required CI Environment Dockerfile or Container Custom Config Docker Container Source Code Tests Test Results Docker + NVIDIA Runtime GPUs Server 11

DOCKER + GPU Easier to use with some hacking still required CI Environment Dockerfile or Container Custom Config Docker Container Source Code Tests Test Results Docker + NVIDIA Runtime GPUs Server 12

KUBERNETES + DOCKER + GPU Promises to be the easiest to use with minimal hacking Benefits GPU support in v1.8+ of Kubernetes Takes care of the runner challenge with GitLab/Jenkins Resource management and scheduling is handled by Kubernetes Challenges Can only target GPUs on homogeneous nodes (heterogeneous support coming) Not all tools support GPU CI out of the box Docker containers required for testing, but this can be the previous step in a pipeline 13

KUBERNETES + DOCKER + GPU Promises to be the easiest to use with minimal hacking CI Environment Docker Container Repo Docker Container Dockerfile or Container Custom Config Docker Test Container Kubernetes Master Source Code Test Results Scheduler Tests Server Kubernetes Master Docker + NVIDIA Runtime GPUs Kubernetes Worker 14

KUBERNETES + DOCKER + GPU Promises to be the easiest to use with minimal hacking CI Environment Docker Container Repo Docker Container Dockerfile or Container Custom Config Docker Test Container Kubernetes Master Source Code Test Results Scheduler Tests Server Kubernetes Master Docker + NVIDIA Runtime GPUs Kubernetes Worker 15

KUBERNETES + DOCKER + GPU Promises to be the easiest to use with minimal hacking CI Environment Docker Container Repo Docker Container Dockerfile or Container Custom Config Docker Test Container Kubernetes Master Source Code Test Results Scheduler Tests Server Kubernetes Master Docker + NVIDIA Runtime GPUs Kubernetes Worker 16

KUBERNETES + DOCKER + GPU Promises to be the easiest to use with minimal hacking CI Environment Docker Container Repo Docker Container Dockerfile or Container Custom Config Docker Test Container Kubernetes Master Source Code Test Results Scheduler Tests Server Kubernetes Master Docker + NVIDIA Runtime GPUs Kubernetes Worker 17

HOW CAN WE MAKE THIS BETTER TODAY? 18

JENKINS PLUGIN FOR NVIDIA + DOCKER Based on Jenkins docker-slaves plugin Simplifies the configuration of Docker containers for GPU CI testing Allows for targeting a Dockerfile within the repo to build and use for testing or a Docker image in a remote hub Supports side-containers with GPU support Easy to use and adapt a project for GPU CI 19

DEMO 20

JENKINS PLUGIN FOR NVIDIA + DOCKER Simplifying the configuration for GPU CI Jenkins CI Environment Dockerfile or Container + Plugin Config Docker Container Source Code Test Results Tests Docker + NVIDIA Runtime GPUs Server 21

LESSONS LEARNED CI best practices apply to GPU code as well Pull request testing is one of the best methods to ensure code quality GitLab CI works great if there are only a few GPU-enabled repos to test For scale-out, GitLab on Kubernetes is best Larger organizations and projects need a centralized CI platform like Jenkins Setup of a new repo is easy and with parameterized builds we can make use of existing pipelines Advanced uses of Jenkins Tagging is key to test on multiple GPU architectures and pipelines for multiple CUDA version testing 22

NEXT STEPS Continue plugin development and release as an open source project Internal Continue deployment of GPU CI and migrate performance testing toward full GPU CI Leverage capabilities of Jenkins to go beyond CI with CD and workflow automation External Expand GPU CI testing by testing pull requests of open source projects using Jenkins and the plugin Take advantage of the GPU targeting within Kubernetes and new GPU features in the coming months Look at ways to more closely integrate GPU CI with GitLab CI and Jenkins plugins for Kubernetes 23

GETTING STARTED Links to useful repos github.com/nvidia NVIDIA Docker Runtime nvidia-docker NVIDIA Kubernetes Device Plugin k8s-device-plugin github.com/mike-wendt Jenkins Plugin For NVIDIA Coming soon Docker + NVIDIA Runtime on Ubuntu nvidia-docker-ubuntu 24

THANK YOU Mike Wendt @mike_wendt github.com/nvidia github.com/mike-wendt