35
1 在阿里云容器服务中使用GPU 加速数据科学 谢峰 阿里云高级技术专家 NVIDIA RAPIDS on Kubernetes Cloud Native Architecture Practice 车漾 阿里云高级技术专家

在阿里云容器服务中使用 加速数据科学 - NVIDIA3. 容器编排与公共云云基础架构相结合 − 与计算,存储,网络的标准化衔接:gpu,npu,cpfs,nas,

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 在阿里云容器服务中使用 加速数据科学 - NVIDIA3. 容器编排与公共云云基础架构相结合 − 与计算,存储,网络的标准化衔接:gpu,npu,cpfs,nas,

1

在阿里云容器服务中使用GPU加速数据科学

谢峰阿里云高级技术专家

NVIDIA RAPIDS on Kubernetes Cloud Native Architecture Practice

车漾阿里云高级技术专家

Page 2: 在阿里云容器服务中使用 加速数据科学 - NVIDIA3. 容器编排与公共云云基础架构相结合 − 与计算,存储,网络的标准化衔接:gpu,npu,cpfs,nas,

Contents02

目录

RAPIDS加速数据科学

03 Kubernetes简介

04 数据科学的云原生实践

01 数据科学的挑战The Challenge of Data Science

RAPIDS accelerate Data Science

Introduction of Kubernetes

Best practice of RAPIDS on cloud native

05 演示Demo

Page 3: 在阿里云容器服务中使用 加速数据科学 - NVIDIA3. 容器编排与公共云云基础架构相结合 − 与计算,存储,网络的标准化衔接:gpu,npu,cpfs,nas,

数据科学的挑战

01

The Challenge of Data Science

Page 4: 在阿里云容器服务中使用 加速数据科学 - NVIDIA3. 容器编排与公共云云基础架构相结合 − 与计算,存储,网络的标准化衔接:gpu,npu,cpfs,nas,

• 性能优化• 线性扩展• 调参

版本更新/弹性伸缩

调试

准备数据

模型开发

模型训练

推理服务

数据科学实验都在做什么?

✓ 端到端生命周期- Data in, executable out

✓ 运行时间长- 小时、天、周✓ 迭代优化 - Cross Validate , tuning

✓ 数据量大、更新频繁、计算规模大、复杂

Page 5: 在阿里云容器服务中使用 加速数据科学 - NVIDIA3. 容器编排与公共云云基础架构相结合 − 与计算,存储,网络的标准化衔接:gpu,npu,cpfs,nas,

规模化数据科学的挑战

1. 数据准备效率低下− 串行运算,数据访问延时

2. 异构资源的管理− CPU, GPU, (X)PU, FPGA, RDMA

3. 实验环境的搭建− Python , GCC, Bazel, TensorFlow, Pytorch, Rapids

4. 端到端的流程支持− Prepare data -> build/train/evaluate model -> release model, and repeat !!!

5. 规模化和持续迭代的模型训练和预测− 如何能用更少的成本达成更高的效率

Page 6: 在阿里云容器服务中使用 加速数据科学 - NVIDIA3. 容器编排与公共云云基础架构相结合 − 与计算,存储,网络的标准化衔接:gpu,npu,cpfs,nas,

RAPIDS加速数据科学

02

RAPIDS accelerate Data Science

Page 7: 在阿里云容器服务中使用 加速数据科学 - NVIDIA3. 容器编排与公共云云基础架构相结合 − 与计算,存储,网络的标准化衔接:gpu,npu,cpfs,nas,

1. GPU端到端加速数据科学,节约时间和成本

− ETL加速

− 机器学习训练和图分析加速

− 机器学习预测加速

2. GPU打通大数据、机器学习和深度学习

− 所有的数据计算都可以交给GPU处理

为什么要用RAPIDS加速数据计算?

Page 8: 在阿里云容器服务中使用 加速数据科学 - NVIDIA3. 容器编排与公共云云基础架构相结合 − 与计算,存储,网络的标准化衔接:gpu,npu,cpfs,nas,

RAPIDS

CUML

KNN

12 2 32 … 121 222

图片集 卷积神经网络 特征向量

搜索图片

Query 请求

相似搜索结果

134 220 212 … 44 125

23 55 212 … 189 123

29 20 12 … 34 212

121 111 0 … 23 66

图像搜索(Keras+Tensorflow+RAPIDS)

600倍的图像检索提速

卷积神经网络 特征向量

CUML KNN(GPU) vs Scikit-learn KNN(CPU)

在阿里云GN6V(Tesla V100)云

服务器上测试

Page 9: 在阿里云容器服务中使用 加速数据科学 - NVIDIA3. 容器编排与公共云云基础架构相结合 − 与计算,存储,网络的标准化衔接:gpu,npu,cpfs,nas,

如何用RAPIDS做分布式数据计算?

1. RAPIDS+SPARK

2. RAPIDS+DASK

Page 10: 在阿里云容器服务中使用 加速数据科学 - NVIDIA3. 容器编排与公共云云基础架构相结合 − 与计算,存储,网络的标准化衔接:gpu,npu,cpfs,nas,

Online Data(SLS/HybridDB

for MySQL/Blink)

Offline Data(MaxComputer)

Client

Dask Worker(Predict)

Dask Worker(Data

Prepare)

Web Server DaskScheduler

Dask Worker(Train)

Message Queue

Model Repository

(OSS)

Redis

RAPIDS+DASK

如何用RAPIDS做分布式数据计算?

Page 11: 在阿里云容器服务中使用 加速数据科学 - NVIDIA3. 容器编排与公共云云基础架构相结合 − 与计算,存储,网络的标准化衔接:gpu,npu,cpfs,nas,

Kubernetes简介

03

Introduction of Kubernetes

Page 12: 在阿里云容器服务中使用 加速数据科学 - NVIDIA3. 容器编排与公共云云基础架构相结合 − 与计算,存储,网络的标准化衔接:gpu,npu,cpfs,nas,

Docker – 让软件交付更简单

Container Runtime

环境隔离资源隔离

Container Image

软件打包软件分发

Page 13: 在阿里云容器服务中使用 加速数据科学 - NVIDIA3. 容器编排与公共云云基础架构相结合 − 与计算,存储,网络的标准化衔接:gpu,npu,cpfs,nas,

Kubernetes –让容器交付更简单

基础设施抽象

容器调度,编排

Page 14: 在阿里云容器服务中使用 加速数据科学 - NVIDIA3. 容器编排与公共云云基础架构相结合 − 与计算,存储,网络的标准化衔接:gpu,npu,cpfs,nas,

什么是Kubernetes?

• Kubernetes是一个开源容器编排引擎,用于自动化容器化应用程序的部署,扩展和管理。

− 资源管理

− 容器编排

− 应用管理

− 运维自动化

−云原生应用平台

Page 15: 在阿里云容器服务中使用 加速数据科学 - NVIDIA3. 容器编排与公共云云基础架构相结合 − 与计算,存储,网络的标准化衔接:gpu,npu,cpfs,nas,

ACK–Alibaba cloud Container service for Kubernetes

ComputingECS, EBM, GPU, FPGA, ECI

NetworkVPC, ENI, RDMA, SLB, DNS

StorageEBS, NAS, CPFS, OSS

Kubernetes (ACK) Serverless Kubernetes (ASK)

Registry Service

Service Integration

Security, ConformanceObservability,

ElasticitySandboxed Container Istio/Knative Auto Pilot

DevOps Micro Service/Service Mesh Enterprise Applications Innovation

Gitlab Jenkins GitOps EDAS Istio .net JEE AI Blockchain IoTC++Spring Cloud

Public Cloud Edge Computing Private Cloud

Serverless Application

Gene Encoding

Multi-Clouds

Page 16: 在阿里云容器服务中使用 加速数据科学 - NVIDIA3. 容器编排与公共云云基础架构相结合 − 与计算,存储,网络的标准化衔接:gpu,npu,cpfs,nas,

数据科学的云原生实践

04

Best practice of RAPIDS on cloud native

Page 17: 在阿里云容器服务中使用 加速数据科学 - NVIDIA3. 容器编排与公共云云基础架构相结合 − 与计算,存储,网络的标准化衔接:gpu,npu,cpfs,nas,

1. 容器技术

− 实验环境标准化,通过容器镜像分发

− 一次构建到处运行

− 秒级启动,适于扩展

2. 容器编排技术

− 自动化容器编排,扩容和管理

− 声明式API

− CPU和GPU的统一管理

为什么要用容器加速数据计算?

Page 18: 在阿里云容器服务中使用 加速数据科学 - NVIDIA3. 容器编排与公共云云基础架构相结合 − 与计算,存储,网络的标准化衔接:gpu,npu,cpfs,nas,

3. 容器编排与公共云云基础架构相结合

− 与计算,存储,网络的标准化衔接:GPU,NPU,CPFS,NAS, OSS, SLB, RDMA

的调度无需通过OpenAPI

− 弹性伸缩,异构资源从0到无穷的扩展

为什么要用容器加速数据计算?

Page 19: 在阿里云容器服务中使用 加速数据科学 - NVIDIA3. 容器编排与公共云云基础架构相结合 − 与计算,存储,网络的标准化衔接:gpu,npu,cpfs,nas,

但是容器技术也带来了技术栈的复杂度

• 数据科学家需要的不仅是分布式训练

用户预期

Kubernetes

TensorFlow能管理 统一流程管理

TensorFlow

• 可观测性

• 可诊断性

• 可追踪性

• 掌握Kubernetes对于数据科学家充满挑战

让Kubernetes对用户透明

Kubernetes

TensorFlow快速上手

用户预期 概念太多一个月也没搞定

统一概念模型

Page 20: 在阿里云容器服务中使用 加速数据科学 - NVIDIA3. 容器编排与公共云云基础架构相结合 − 与计算,存储,网络的标准化衔接:gpu,npu,cpfs,nas,

Arena – 阿里云Kubernetes机器学习解决方案

➢ 用一个工具屏蔽所有底层资源、环境管理、任务调度和GPU分配的复杂性• 提供数据科学家最熟悉的使用体验• 兼容多种机器学习框架 – RAPIDS, Tensorflow, Caffe, MPI, Hovorod, Pytorch

➢ 端到端工作流

• 机器学习生产流水线 – 集成训练数据管理,实验任务管理,模型开发,持续训练、评估,上线预测等全流程

➢ 轻量级、弹性、高效• 基于Docker容器和Kubernetes;轻量级,最小3个节点• 可弹性支持大规模CPU,GPU集群(>500节点)• 一分钟内启动机器学习任务;15分钟内创建异构计算集群

➢ 支持实时训练运维• 支持CPU,GPU等资源监控• 可查看GPU资源、任务分配情况• 可查看实时训练日志

Kubernetes / Docker

Kubeflow

arena cli

Other backends CRD

Arena

RAPIDS, Tensorflow, Caffe, PyTorch, Hovorod

CPU/GPU/FPGA

Ethernet/RDMA

Hadoop/OSS/CPFS

Flink, Spark

Page 21: 在阿里云容器服务中使用 加速数据科学 - NVIDIA3. 容器编排与公共云云基础架构相结合 − 与计算,存储,网络的标准化衔接:gpu,npu,cpfs,nas,

1. arena submit job2. Auto translates to RAPIDS tasks

RAPIDS training job topology

/job:master/task:0

/job:master/task:0

/job:worker/task:1

/job:worker/task:0(chief)

/job:worker/task:2

git

init containers

training containers

trainer Visualization

events, log

task:0

Code

cache

Training

data

Model

checkpoints

git

init containers

training containers

trainer Visualization

events, log

task:0

Code cache

git

init containers

training containers

trainer Visualization

events, log

task:0

Code cache

git

init containers

training containers

trainer Visualization

events, log

task:0

Code cache

git

init containers

training containers

trainer Visualization

events, log

task:0

Code cache

Kubernetes cluster

3. Auto schedules RAPIDS tasks to K8S

1 line command:arena submit xxxjob \

--name=job1 \--gpus=1 \--syncMode=git \--syncSource=https://github.com/x/xxx.git \--data=xxxdata:/data_dir--env=xxx\--image=xxx:xxx\“train.py”

数据科学家:

只需要关心数据任务本身 • Auto scaling

• logging

• HA

• monitoring

• Failure recovery

Arena隐藏任务编排管理的复杂度

Page 22: 在阿里云容器服务中使用 加速数据科学 - NVIDIA3. 容器编排与公共云云基础架构相结合 − 与计算,存储,网络的标准化衔接:gpu,npu,cpfs,nas,

ECS ECS ECS

POD POD

POD POD

POD POD

POD POD

POD POD

POD POD

Container Scheduling and Orchestration

• 按照集群资源付费• 需要维护集群节点• 需要容量规划

Container Scheduling and Orchestration

ECI

POD POD

POD POD

POD POD

POD POD

POD POD

POD POD

POD POD

POD POD

系统托管

用户管理经典Kubernetes集群 VS Serverless Kubernetes

• 按应用消费资源付费• 无需维护集群节点• 按需弹性伸缩

Serverless Kubernetes

Page 23: 在阿里云容器服务中使用 加速数据科学 - NVIDIA3. 容器编排与公共云云基础架构相结合 − 与计算,存储,网络的标准化衔接:gpu,npu,cpfs,nas,

Virtual Kubelet: 统一管理云上资源

Virtual

Kubelet

ECIK8s Connector

Elastic Container Instance

• 连接kubernetes和ECI,实现pod和eci的转换

• 解耦编排层和资源池,彻底释放资源弹性

• https://github.com/virtual-kubelet/alibabacloud-eci

EGS

Elastic GPU Service

Kubernetes

Page 24: 在阿里云容器服务中使用 加速数据科学 - NVIDIA3. 容器编排与公共云云基础架构相结合 − 与计算,存储,网络的标准化衔接:gpu,npu,cpfs,nas,

推送容器镜像 根据CRD定义生成镜像快照

用户

容器镜像服务 - ACR

镜像快照

Kubernetes 服务 – ACK/ASK

ECI 实例 ECI 实例

通过快照创建容器

创建 ECI 实例

ECI 实例

分层存储

容器启动加速 – “零秒”镜像启动

Page 25: 在阿里云容器服务中使用 加速数据科学 - NVIDIA3. 容器编排与公共云云基础架构相结合 − 与计算,存储,网络的标准化衔接:gpu,npu,cpfs,nas,

演示

05

Demo

Page 26: 在阿里云容器服务中使用 加速数据科学 - NVIDIA3. 容器编排与公共云云基础架构相结合 − 与计算,存储,网络的标准化衔接:gpu,npu,cpfs,nas,

问题:

• GPU虚拟机的价格昂贵

• GPU容器镜像启动缓慢,10分钟启动

• 配置复杂

Serverless GPU弹性伸缩

• 按需弹出,随用随启

• GPU容器秒级启动

Page 27: 在阿里云容器服务中使用 加速数据科学 - NVIDIA3. 容器编排与公共云云基础架构相结合 − 与计算,存储,网络的标准化衔接:gpu,npu,cpfs,nas,

arena submit mpijob

--name=myhvd \

--workers=6 \

--gpus=2 \

--sshPort=33 \

--syncMode=git \

--syncSource=https://github.com/xxx/tensorflow-sample-code.git \

--data=tfdata:/data_dir

--env=num_batch=100 \

--env=batch_size=80 \

--image=registry.cn-hangzhou.aliyuncs.com/tensorflow-samples/ali-perseus:gpu-tf-1.6.0 \

"/root/hvd-distribute.sh 12 2”

worker0

worker1

worker2

worker3

worker4

worker5

Arena demo – 提交分布式训练

Page 28: 在阿里云容器服务中使用 加速数据科学 - NVIDIA3. 容器编排与公共云云基础架构相结合 − 与计算,存储,网络的标准化衔接:gpu,npu,cpfs,nas,

Arena demo – 查看任务状态

# check job list

arena list

NAME STATUS TRAINER AGE NODE

caffe-1080ti-1 RUNNING MPIJOB 3d 192.168.1.118

tf-dist-data SUCCEEDED TFJOB 3d N/A

# check job deatils

arena get tf-dist-data

NAME STATUS TRAINER AGE INSTANCE NODE

tf-dist-data RUNNING tfjob 3d tf-dist-data-tfjob-ps-0 192.168.1.120

tf-dist-data SUCCEEDED tfjob 3d tf-dist-data-tfjob-worker-0 N/A

tf-dist-data SUCCEEDED tfjob 3d tf-dist-data-tfjob-worker-1 N/A

Your tensorboard will be available on:

192.168.1.117:32594

Page 29: 在阿里云容器服务中使用 加速数据科学 - NVIDIA3. 容器编排与公共云云基础架构相结合 − 与计算,存储,网络的标准化衔接:gpu,npu,cpfs,nas,

Arena demo – 查看任务日志

# check real time log

arena logs tf-dist-data

2018-07-30T03:47:49.881380632Z 2018-07-30 03:47:49.881141: I

tensorflow/core/platform/cpu_feature_guard.cc:137] Your CPU supports instructions that this TensorFlow binary was

not compiled to use: SSE4.1 SSE4.2 AVX AVX2 FMA

# check full log

arena logviewer tf-dist-data

Your LogViewer will be available on:

192.168.1.120:8080/tfjobs/ui/#/default/tf-dist-data-tfjob

Page 30: 在阿里云容器服务中使用 加速数据科学 - NVIDIA3. 容器编排与公共云云基础架构相结合 − 与计算,存储,网络的标准化衔接:gpu,npu,cpfs,nas,

Arena demo – 更多命令行

Page 31: 在阿里云容器服务中使用 加速数据科学 - NVIDIA3. 容器编排与公共云云基础架构相结合 − 与计算,存储,网络的标准化衔接:gpu,npu,cpfs,nas,

Arena RAPIDS Demo

Page 32: 在阿里云容器服务中使用 加速数据科学 - NVIDIA3. 容器编排与公共云云基础架构相结合 − 与计算,存储,网络的标准化衔接:gpu,npu,cpfs,nas,

Kubelet

RAPIDS Operator

BlazingSql Dask Client Dask Scheduler Dask Worker

gpu0 gpu0

Worker Nodegpu0 gpu1 gpu2 gpu3

NVIDIA Container Runtime

RAPIDS Operator完成实际的调度管理

Page 33: 在阿里云容器服务中使用 加速数据科学 - NVIDIA3. 容器编排与公共云云基础架构相结合 − 与计算,存储,网络的标准化衔接:gpu,npu,cpfs,nas,

RAPIDS Operator Demo

Page 34: 在阿里云容器服务中使用 加速数据科学 - NVIDIA3. 容器编排与公共云云基础架构相结合 − 与计算,存储,网络的标准化衔接:gpu,npu,cpfs,nas,

云原生AI咨询

欢迎交流

GPU云服务器

Page 35: 在阿里云容器服务中使用 加速数据科学 - NVIDIA3. 容器编排与公共云云基础架构相结合 − 与计算,存储,网络的标准化衔接:gpu,npu,cpfs,nas,

THANKS !