[논문 리뷰] Singularity: Planet-Scale, Preemptive and Elastic Scheduling of AI Workloads
Singularity는 글로벌 GPU 및 가속기 풀을 통해 수정되지 않은 딥러닝 작업을 완전히 사전 차단 가능하고 탄력적으로 실행할 수 있는 플래너 스케줄러로, 행성 규모의 투명한 스케줄링을 제공한다. 장치 프록시와 복제본 스플리팅을 통해 작업을 물리적 장치에서 분리함으로써, 낮은 오버헤드로 즉각적인 체크포인팅과 라이브 마이그레이션을 실현하며 성능에 거의 영향을 주지 않는다. 이로 인해 사용자 코드 변경 없이도 높은 자원 활용도와 엄격한 SLA를 달성할 수 있다.
Lowering costs by driving high utilization across deep learning workloads is a crucial lever for cloud providers. We present Singularity, Microsoft's globally distributed scheduling service for highly-efficient and reliable execution of deep learning training and inference workloads. At the heart of Singularity is a novel, workload-aware scheduler that can transparently preempt and elastically scale deep learning workloads to drive high utilization without impacting their correctness or performance, across a global fleet of AI accelerators (e.g., GPUs, FPGAs). All jobs in Singularity are preemptable, migratable, and dynamically resizable (elastic) by default: a live job can be dynamically and transparently (a) preempted and migrated to a different set of nodes, cluster, data center or a region and resumed exactly from the point where the execution was preempted, and (b) resized (i.e., elastically scaled-up/down) on a varying set of accelerators of a given type. Our mechanisms are transparent in that they do not require the user to make any changes to their code or require using any custom libraries that may limit flexibility. Additionally, our approach significantly improves the reliability of deep learning workloads. We show that the resulting efficiency and reliability gains with Singularity are achieved with negligible impact on the steady-state performance. Finally, our design approach is agnostic of DNN architectures and handles a variety of parallelism strategies (e.g., data/pipeline/model parallelism).
연구 동기 및 목표
- 수행 가능한 자원을 최대한 활용하고, 글로벌 AI 가속기(_GPU, FPGAs_) 풋에 걸쳐 자원 낭비를 제거하기 위해 여유 자원을 기회적 사용할 수 있도록 하는 것.
- 동적 자원 할당과 사전 차단이 이루어지는 상황에서도, 훈련 및 추론 워크로드에 대해 강력한 작업 수준의 SLA를 제공하는 것.
- 장기 실행되는 DNN 작업의 신뢰성을 향상시키기 위해, 정지 지점에서 재시작할 수 있도록 허용하여 비용이 많이 드는 재시작을 방지하는 것.
- 탄력성과 사전 차단을 수정되지 않은 모든 DNN 작업에 대해 첫 번째로, 투명하게 제공하는 것. 이는 커스터마이징 라이브러리나 하이퍼파라미터 튜닝이 필요로 하지 않는 것.
- 장치 프록시와 복제본 스플리팅을 사용해 작업 실행을 물리적 하드웨어에서 분리함으로써, 최소한의 오버헤드로 동적 마이그레이션과 크기 조정을 가능하게 하는 것.
제안 방법
- GPU 장치 상태를 워커 프로세스에서 분리하는 장치 프록시 추상화를 도입하여, 깔끔한 체크포인팅과 마이그레이션을 가능하게 한다.
- 동일한 물리적 장치에 여러 DNN 워커를 시간 슬라이스 방식으로 공유하면서도 전체 메모리 접근과 낮은 오버헤드를 확보하기 위해 복제본 스플리팅을 활용한다. 이는 워커 간 메모리 유사성을 활용한다.
- 라이브 마이그레이션을 위한 일관된 애플리케이션 수준 체크포인팅을 만들기 위해 미니배치 경계에서 동기화 장벽을 사용한다.
- 같은 수의 논리적 워커를 다양한 수의 물리적 가속기로 다시 매핑함으로써, 작업 설정을 변경하지 않고도 동적 크기 조정을 가능하게 한다.
- CRIU를 활용해 효율적이고 투명한 프로세스 체크포인팅 및 마이그레이션을 수행하며, 의미 인식 최적화를 통해 오버헤드를 감소시킨다.
- 사전 차단과 탄력성을 계층적이고 글로벌 분산 스케줄러에 통합된 첫 번째 스케줄링 원칙으로 간주한다.
실험 결과
연구 질문
- RQ1수정되지 않은 애플리케이션 코드 없이도 클러스터와 지역 간에 딥러닝 워크로드를 완전히 사전 차단 가능하고 마이그레이션 가능한 방법은 무엇인가?
- RQ2수정되지 않은 DNN 훈련 워크로드에 대해 훈련 루프를 수정하거나 커스터마이징 라이브러리가 필요 없이 투명한 탄력성을 달성할 수 있는가?
- RQ3이질적이고 분산된 DNN 환경에서 낮은 오버헤드로 일관된 체크포인팅을 어떻게 실현할 수 있으며, 성능에 거의 영향을 주지 않을 수 있는가?
- RQ4자원 분할 없이 글로벌 분산 AI 인fra에서 높은 자원 활용도와 엄격한 SLA를 달성하기 위해 어떤 아키텍처 메커니즘이 필요한가?
- RQ5동적 자원 스케일링을 투명하게 구현함으로써, 통계적 효율성과 고처리량을 동시에 달성할 수 있는가?
주요 결과
- Singularity는 수정되지 않은 DNN 워크로드를 지역 및 데이터센터 간에 투명하게 사전 차단하고 마이그레이션할 수 있으며, 안정 상태 성능 오버헤드가 거의 없다.
- 장치 프록시와 복제본 스플리팅을 사용함으로써, 여러 워커가 하나의 GPU를 전체 메모리 접근과 최소한의 성능 저하로 공유할 수 있다.
- 모든 작업이 안전한 동기화 지점(예: 미니배치 종료 시점)에서 자동으로 체크포인팅되며, 사전 차단 후 신뢰성 있게 재시작할 수 있다.
- 탄력성은 완전히 투명하다: 작업은 동일한 수의 워커와 하이퍼파라미터를 유지하면서도, 다양한 수의 물리적 가속기로 동적으로 다시 매핑된다.
- 시스템은 SLA 위반 없이 여유 자원을 기회적으로 활용함으로써, 수십만 개의 GPU로 구성된 글로벌 풋에서 높은 자원 활용도를 달성한다.
- 작업을 하드웨어에서 분리하고 작업을 보존하는 마이그레이션을 가능하게 하여, Singularity는 낭비되는 컴퓨팅 자원을 줄이고 장기 실행 훈련 작업의 신뢰성을 향상시킨다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.