HiveD는 딥 러닝 워크로드를 위한 스케줄러입니다.
Microsoft OpenPAI의 독립 실행형 구성 요소 중 하나인 HiveD는 다중 테넌트 GPU 클러스터를 위한 Kubernetes 스케줄러 확장기 로 설계되었습니다. 다중 테넌트 GPU 클러스터는 여러 테넌트(팀)가 단일 물리적 클러스터(PC)에서 동일한 GPU 풀을 공유한다고 가정하고 각 테넌트에 일부 리소스 보장을 제공합니다. HiveD는 각 테넌트를 가상 클러스터(VC)로 모델링하므로 한 테넌트는 자체 VC를 개인 클러스터인 것처럼 사용하는 동시에 다른 VC의 무료 리소스를 낮은 우선순위로 사용할 수도 있습니다.
HiveD는 다음과 같이 딥 러닝 워크로드를 위한 몇 가지 주요 기능을 제공합니다.
HiveD를 차별화하는 킬러 기능은 수량, 숫자 값뿐만 아니라 GPU 기반 학습 작업의 핵심 요구 사항인 토폴로지 측면에서도 각 VC에 리소스 보장을 제공한다는 것입니다. 예를 들어 기존 스케줄러는 VC가 8개의 GPU를 사용할 수 있도록 보장합니다. 하지만 이 8개의 GPU의 토폴로지는 알 수 없습니다. 단일 노드 내에서 실행되어야 하는 8-GPU 훈련 작업은 해당 VC에 여전히 8개의 여유 GPU가 있더라도 할당되지 않을 수 있습니다. 이는 이 8개의 무료 GPU가 여러 노드에 속할 수 있기 때문입니다.
HiveD는 토폴로지 및 하드웨어 유형과 같은 정보의 수량과 기타 종류를 모두 인코딩하는 사용자 정의 리소스 유형인 셀 측면에서 VC의 리소스를 보호합니다. 위의 예에서 사용자는 8-GPU 노드의 셀 유형을 정의할 수 있으며, VC에는 이러한 셀 중 하나가 할당될 수 있습니다. 그러면 HiveD는 클러스터의 다른 워크로드에 관계없이 항상 VC에 사용 가능한 하나의 8-GPU 노드가 있는지 확인합니다.
HiveD는 세분화된 리소스 보장을 위한 유연한 셀 정의를 허용합니다. 예를 들어 사용자는 다양한 장치 모델(예: NVIDIA V100 GPU, AMD Radeon MI100 GPU, Cloud TPU v3) 또는 네트워킹 구성(예: InfiniBand 도메인)에 대해 여러 토폴로지 수준(예: PCI-e 스위치)에서 셀을 정의할 수 있습니다. . VC는 다양한 유형의 셀을 가질 수 있으며 HiveD는 이를 모두 보장합니다.
HiveD는 학습 작업을 시작하기 전에 모든 컨테이너를 할당해야 하는 딥 러닝 학습 작업의 일반적인 예약 요구 사항인 갱 예약 의 성능을 최적화합니다. 동일한 리소스 세트를 놓고 경쟁하는 여러 갱 일정 작업은 기아로 이어질 수 있으며, 각 작업은 부분적인 리소스만 얻고 무기한 기다려야 합니다.
HiveD는 작업 내의 모든 컨테이너를 트랜잭션 방식으로 예약합니다. 즉, 이러한 모든 컨테이너의 요구 사항이 전체적으로 승인되거나 거부되므로 부분적인 리소스 할당 및 기아 상태가 방지됩니다.
HiveD는 여러 작업 우선순위를 지원합니다. 우선순위가 높은 작업은 우선순위가 낮은 작업을 선점 할 수 있습니다. HiveD는 또한 기회주의적 작업 , 즉 가능한 경우 다른 VC의 무료 리소스를 사용할 수 있는(다른 VC에 대한 리소스 보장을 위반하지 않고) 우선순위가 가장 낮은 작업을 도입합니다.
멀티 테넌시: 가상 클러스터(VC)
세분화된 VC 리소스 보장: 수량, 토폴로지, 유형, 고정된 VC 리소스 등
유연한 VC 내 스케줄링: 토폴로지 인식, 유연한 하드웨어 유형, 고정된 VC 리소스, 스케줄링 정책 사용자 정의 등
최적화된 리소스 조각화 및 기아 감소
우선순위, 낮은 우선순위의 남용, VC 간/VC 내 선점
작업(전체/부분) 갱 스케줄링/선점
내결함성, 잘못된 하드웨어 인식, 작업 보존 재구성
Kubernetes 클러스터 v1.14.2 이상, 온클라우드 또는 온프레미스.
구성 스케줄러
스케줄러 실행
스케줄러에 워크로드 제출
사용 설명서
기능 데모
설계
도커허브
FrameworkController: HiveD를 쉽게 활용하여 작업을 예약할 수 있는 범용 Kubernetes 포드 컨트롤러입니다.
OpenPAI: AI 플랫폼을 위한 완벽한 솔루션입니다. HiveD는 OpenPAI와 함께 작업할 때 더욱 사용자 친화적이 될 것입니다.
이 프로젝트는 기여와 제안을 환영합니다. 대부분의 기여는 귀하가 귀하의 기여를 사용할 수 있는 권리를 갖고 있으며 실제로 그렇게 하고 있음을 선언하는 기여자 라이센스 계약(CLA)에 동의해야 합니다. 자세한 내용을 보려면 https://cla.opensource.microsoft.com을 방문하세요.
끌어오기 요청을 제출하면 CLA 봇이 자동으로 CLA 제공이 필요한지 여부를 결정하고 PR을 적절하게 장식합니다(예: 상태 확인, 댓글). 봇이 제공하는 지침을 따르기만 하면 됩니다. CLA를 사용하여 모든 저장소에서 이 작업을 한 번만 수행하면 됩니다.
이 프로젝트는 Microsoft 오픈 소스 행동 강령을 채택했습니다. 자세한 내용은 행동 강령 FAQ를 참조하거나 추가 질문이나 의견이 있는 경우 [email protected]으로 문의하세요.
연구에 도움이 된다면 간행물에서 HiveD를 인용해 주세요.
@inproceedings {hived-osdi2020, author = {Hanyu Zhao and Zhenhua Han and Zhi Yang and Quanlu Zhang and Fan Yang and Lidong Zhou and Mao Yang and Francis C.M. Lau and Yuqi Wang and Yifan Xiong and Bin Wang}, title = {{HiveD}: Sharing a {GPU} Cluster for Deep Learning with Guarantees}, booktitle = {14th {USENIX} Symposium on Operating Systems Design and Implementation ({OSDI} 20)}, year = {2020}, isbn = {978-1-939133-19-9}, pages = {515--532}, url = {https://www.usenix.org/conference/osdi20/presentation/zhao-hanyu}, publisher = {{USENIX} Association}, month = nov, }