[20250402 통합세미나] GPU Virtualization and scheduling methods
페이지 정보

본문
[일시]
2025.04.02
[세미나 주제]
GPU Virtualization and scheduling methods
[발표자]
오수진
[요약]
본 발표에서는 GPU 자원의 비효율적인 단일 프로세스 사용 문제를 해결하기 위해, 여러 사용자와 워크로드가 동시에 GPU를 공유할 수 있도록 GPU 가상화 및 스케줄링 기술의 필요성과 방안을 다루고 있다. GPU 가상화는 전체 가상화, 파라 가상화, API 리모팅, 패스스루 등의 방식으로 구분되며, 각각 성능, 유연성, 구현 난이도에서 차이를 보인다. NVIDIA의 MIG, MPS, vGPU 기술은 물리 GPU를 논리 단위로 분할하거나 프로세스 간 병렬 실행을 지원하여 자원의 활용도를 높인다. GPU 스케줄링 기법은 FCFS, 라운드로빈, 우선순위 기반, SLA 기반 등으로 다양하게 분류되며, 워크로드의 특성과 요구에 따라 적용된다. 커널 기반의 TimeGraph는 실시간 환경에서 우선순위와 자원 예산 기반으로 GPU 명령을 처리하며, PRT와 HT 같은 정책을 통해 선점 불가 환경에서도 효율적인 자원 배분을 가능하게 한다. 사용자 공간 기반의 RGEM은 DMA 복사를 청크 단위로 나누어 실시간성 확보와 선점을 가능하게 하며, 드라이버 수정 없이도 활용할 수 있는 장점이 있다. 커널 수준의 Gdev는 API 호출 단위로 GPU 자원을 추적하고 우선순위 기반으로 스케줄링하여 정확한 자원 공유와 관리가 가능하다. 가상화 환경에서는 GViM과 Pegasus가 대표적으로, 특히 Pegasus는 CPU와 GPU를 통합적으로 고려한 Federated Scheduler를 도입하여 공정하고 유연한 자원 분배를 실현한다. 연구자는 Ubuntu, Docker, Kubernetes 환경에서 MIG 및 Fractional GPU를 활용한 사용자 공간 기반의 경량 스케줄러를 3단계 실험을 통해 구현하고자 하며, SLA 기반 정책을 설계하고 평가고자 한다. Kubernetes 환경에서 MIG, MPS, Prometheus를 연계한 GPU 자원의 모니터링 및 자동 제어 체계를 구축하고, 정량적 실험을 통해 GPU 자원의 공정하고 효율적인 사용 가능성을 검증하고 한다.
[Q&A]
- GPU 자원 회수할 때 락 걸려 있으면 어떻게 하는지 궁금합니다.
: GPU 자원을 회수할 때 sync.Mutex를 사용해 락을 걸기 때문에, 이미 다른 작업이 GPU 관련 맵에 접근 중이라면 해당 락이 풀릴 때까지 대기합니다. 락이 해제되면 대기 중이던 작업이 순차적으로 실행되어 자원을 안전하게 회수할 수 있습니다.
- OS/ 가상화 환경 알고리즘 차이가 궁금합니다.
OS 환경은 GPU 자원 할당이 단순하고 빠르지만, 공정한 분배나 격리가 어렵고, 가상화 환경의 경우 다수의 사용자(VM)을 다뤄야 하므로 스케줄링이 더 복잡하고 성능 외에 공정성, 격리성, 보안성을 고려한 알고리즘이 필요합니다. 또한 본 논문에서의 개념에서 OS는 기본적으로 존재하며, 가상화는 그 위에 추가되는 기술입니다. 따라서 알고리즘의 차이는 OS의 유무가 아니라, 하나의 OS가 GPU를 직접 쓰는지 아니면 여러 VM이 자원을 나눠쓰는지에 따라 스케줄링 복잡성과 고려할 부분이 달라지는 차이점에서 비롯됩니다.
[관련 논문]
- GPU Virtualization and Scheduling Methods: A Comprehensive Survey
[녹화 영상 링크]
https://us02web.zoom.us/rec/share/5ijxRG37HRGrA1cLyIbIwYi25aNKPOSE5kJma62VdGo5CAeQ68_Bz7cD5h7gFqkS.4xTmKiPb7GHGaDTu
2025.04.02
[세미나 주제]
GPU Virtualization and scheduling methods
[발표자]
오수진
[요약]
본 발표에서는 GPU 자원의 비효율적인 단일 프로세스 사용 문제를 해결하기 위해, 여러 사용자와 워크로드가 동시에 GPU를 공유할 수 있도록 GPU 가상화 및 스케줄링 기술의 필요성과 방안을 다루고 있다. GPU 가상화는 전체 가상화, 파라 가상화, API 리모팅, 패스스루 등의 방식으로 구분되며, 각각 성능, 유연성, 구현 난이도에서 차이를 보인다. NVIDIA의 MIG, MPS, vGPU 기술은 물리 GPU를 논리 단위로 분할하거나 프로세스 간 병렬 실행을 지원하여 자원의 활용도를 높인다. GPU 스케줄링 기법은 FCFS, 라운드로빈, 우선순위 기반, SLA 기반 등으로 다양하게 분류되며, 워크로드의 특성과 요구에 따라 적용된다. 커널 기반의 TimeGraph는 실시간 환경에서 우선순위와 자원 예산 기반으로 GPU 명령을 처리하며, PRT와 HT 같은 정책을 통해 선점 불가 환경에서도 효율적인 자원 배분을 가능하게 한다. 사용자 공간 기반의 RGEM은 DMA 복사를 청크 단위로 나누어 실시간성 확보와 선점을 가능하게 하며, 드라이버 수정 없이도 활용할 수 있는 장점이 있다. 커널 수준의 Gdev는 API 호출 단위로 GPU 자원을 추적하고 우선순위 기반으로 스케줄링하여 정확한 자원 공유와 관리가 가능하다. 가상화 환경에서는 GViM과 Pegasus가 대표적으로, 특히 Pegasus는 CPU와 GPU를 통합적으로 고려한 Federated Scheduler를 도입하여 공정하고 유연한 자원 분배를 실현한다. 연구자는 Ubuntu, Docker, Kubernetes 환경에서 MIG 및 Fractional GPU를 활용한 사용자 공간 기반의 경량 스케줄러를 3단계 실험을 통해 구현하고자 하며, SLA 기반 정책을 설계하고 평가고자 한다. Kubernetes 환경에서 MIG, MPS, Prometheus를 연계한 GPU 자원의 모니터링 및 자동 제어 체계를 구축하고, 정량적 실험을 통해 GPU 자원의 공정하고 효율적인 사용 가능성을 검증하고 한다.
[Q&A]
- GPU 자원 회수할 때 락 걸려 있으면 어떻게 하는지 궁금합니다.
: GPU 자원을 회수할 때 sync.Mutex를 사용해 락을 걸기 때문에, 이미 다른 작업이 GPU 관련 맵에 접근 중이라면 해당 락이 풀릴 때까지 대기합니다. 락이 해제되면 대기 중이던 작업이 순차적으로 실행되어 자원을 안전하게 회수할 수 있습니다.
- OS/ 가상화 환경 알고리즘 차이가 궁금합니다.
OS 환경은 GPU 자원 할당이 단순하고 빠르지만, 공정한 분배나 격리가 어렵고, 가상화 환경의 경우 다수의 사용자(VM)을 다뤄야 하므로 스케줄링이 더 복잡하고 성능 외에 공정성, 격리성, 보안성을 고려한 알고리즘이 필요합니다. 또한 본 논문에서의 개념에서 OS는 기본적으로 존재하며, 가상화는 그 위에 추가되는 기술입니다. 따라서 알고리즘의 차이는 OS의 유무가 아니라, 하나의 OS가 GPU를 직접 쓰는지 아니면 여러 VM이 자원을 나눠쓰는지에 따라 스케줄링 복잡성과 고려할 부분이 달라지는 차이점에서 비롯됩니다.
[관련 논문]
- GPU Virtualization and Scheduling Methods: A Comprehensive Survey
[녹화 영상 링크]
https://us02web.zoom.us/rec/share/5ijxRG37HRGrA1cLyIbIwYi25aNKPOSE5kJma62VdGo5CAeQ68_Bz7cD5h7gFqkS.4xTmKiPb7GHGaDTu
첨부파일
-
20250402_오수진_GPU Virtualization and scheduling methods.pdf (1.8M)
DATE : 2025-04-03 10:38:46
댓글목록
등록된 댓글이 없습니다.