msyhu / paper-logs

읽어야 하는 논문들을 관리하고, 읽은 논문들의 기록을 남기는 공간
7 stars 1 forks source link

AntMan: Dynamic Scaling on GPU Clusters for Deep Learning #3

Closed msyhu closed 3 years ago

msyhu commented 3 years ago

어떤 내용의 논문인가요? 👋

Abstract (요약) 🕵🏻‍♂️

Efficiently scheduling deep learning jobs on large-scale GPU clusters is crucial for job performance, system throughput, and hardware utilization. It is getting ever more challenging as deep learning workloads become more complex. This paper presents AntMan, a deep learning infrastructure that co-designs cluster schedulers with deep learning frameworks and has been deployed in production at Alibaba to manage tens of thousands of daily deep learning jobs across thousands of GPUs. AntMan accommodates the fluctuating resource demands of deep learning training jobs. As such, it utilizes the spare GPU resources to co-execute multiple jobs on a shared GPU. AntMan exploits unique characteristics of deep learning training to introduce dynamic scaling mechanisms for memory and computation within the deep learning frameworks. This allows fine-grained coordination between jobs and prevents job interference. Evaluations show that AntMan improves the overall GPU memory utilization by 42% and computation utilization by 34% in our multi-tenant cluster without compromising fairness, presenting a new approach to efficiently utilizing GPUs at scale.

이 논문을 읽어서 무엇을 배울 수 있는지 알려주세요! 🤔

레퍼런스의 URL을 알려주세요! 🔗

https://www.usenix.org/system/files/osdi20-xiao.pdf

오픈소스가 있다면 주소를 써 주세요!

https://github.com/alibaba/GPU-scheduler-for-deep-learning

msyhu commented 3 years ago

Motivation

Deep Learning Training

딥러닝은 수백만의 반복으로 이루어지며, 각각의 반복에서는 mini-batch 라고 불리는 몇 개의 샘플을 처리한다. 딥러닝 과정을 간단히 서술하고 있다. 크게 3가지로 본 논문에서는 말하고 있다.

  1. sample과 model weight는 score를 계산하는데 쓰이고, 이 단계를 Forward pass라고 한다.
  2. 목적함수를 이용, 1에서 나온 score와 desired 간의 차이, 즉 loss error 를 구한다.
  3. 모델 파라미터의 업데이트를 위해 gradient 가 learning rate 에 의해 scale 된다.

큰 회사에서는 multi-tenant 환경이 기본이라고 하는데, 이런 환경에서는 GPU oversubscribe 되는 경우도 있기 때문에 이걸 대비해야 한다고 말하고 싶은 듯 하다.

Characterizing Production DL Cluster

Low utilization of in-use GPUs

1주동안 heterogeneity 한 GPU 클러스터의 GPU 사용률, GPU 메모리 사용률을 추적해본 결과, 오직 10% 정도의 GPU만 80% 이상의 GPU Utilization 율을 보였다. image

Idle waiting for gang-schedule

gang-scheduling 이란 모든 필요한 GPU가 모일 때까지 job이 시작하지 않는 것을 말한다. 이 때 요구되는 GPU가 많을수록 waiting time 또한 길어진다. image

Dynamic resource demand

DL job 도중에도 사용하는 리소스 양이 천차만별이다. 이러한 현상은 필요한 자원을 예측하는 것을 힘들게 한다. 따라서 가장 많이 쓸 때를 기준으로 자원을 할당해야 하는데, 이는 결국 GPU Underutilization 의 원인이 된다. image

Opportunities in DL Uniqueness

본 논문에서는 Mini-Batch 단위로 딥러닝 작업을 관찰한 결과 몇 가지 사실을 발견했다.

  1. 모델 사이즈가 보통 작기 때문에 GPU 메모리의 대부분은 다른 job 에게 양보 가능할 것이다.
  2. mini-batch 연산 시간이 보통 작기 때문에 fine-grained 하게 GPU 시간과 memory를 할당해도 될 것이다.
  3. mini-batch 들은 보통 유사한 job performance 를 보이기 때문에, 이것을 이용해 interference 가 일어나는지 평가해볼 수 있을 것이다. image 주. 왼쪽 그림을 보면 90% 이상이 메모리를 500MB 이하로 사용하였고, 오른쪽 그림에서는 90% 이상이 mini-batch 시간이 900ms 가 안 걸렸다.
msyhu commented 3 years ago

Method

Dynamic Scaling

Local Scheduler가 GPU Memory와 Computation 을 어떻게 다루는지에 대한 내용이다.

Memory

image

image

Computation

image

Schedulers

There is an inherent tension between providing fairness(e.g., to ensure SLAs of DL jobs with guaranteed resources) and achieving high resource utilization (e.g., GPU utilization), because of the constant fluctuation in both the load on a cluster and the resource needs of a job.

클러스터에 대한 load 와 DL job의 리소스 요구 모두 변동성이 크기 때문에, fairness(보장된 리소스로 DL 작업의 SLA를 보장하는 것)과 high resource utilization(GPU 활용률) 사이에는 trade-off가 존재한다.

Antman은 계층적으로 2개의 스케줄러로 구성되어 있다. image

global scheduler

local scheduler

msyhu commented 3 years ago

Experiment

image

GPU CPU 관점

image

GPU Memory 관점

image

msyhu commented 3 years ago

Critic