2020년 9월 29일
클라우드 기반 GPU 가상화
I. 클라우드 기반 GPU 가상화의 필요성 및 효과
II. 클라우드 기반 GPU 가상화 기술
가. API 리모팅 (GPU 벤더 미지원 시 구현 방법) 기술
개념 | Host OS(Native 환경)에서 쓰이는 GPU 라이브러리와 동일한 API를 가진 래퍼(wrapper) 라이브러리를 Guest OS에 제공하는 기술 |
---|---|
구성도 /요소 | |
원리 | ① 래퍼 라이브러리는 GPU 응용프로그램이 GPU 연산 함수 호출 시 GPU 드라이버에 도달하기 전에 가로챔 ② 가로챈 호출은 공유 메모리를 통해 Host OS로 전달하거나 네트워크를 통해 GPU 보유 원격 시스템에 전달 ③ 원격에서 GPU 호출 처리 후 결과 값만 다시 래퍼 라이브러리로 전달 (호스트 운영체제 또는 타 원격 시스템에 전달된 GPU 호출은 원격으로 처리되므로 API 리모팅이라는 이름이 붙여짐) |
기법 | – GViM, vCUDA, rCUDA, GVirtuS, GVM, Pegasus, Shadowfax, VOCL, DS-CUDA 등 |
장점 | – Guest OS에 GPU를 노출시키지 않고 Guest OS에 GPU 에뮬레이션 방법 제공 – 라이브러리 수준 GPU 가상화하여 소스 코드가 미공개된 상용 GPU 드라이버 우회 |
단점 | – Backend-Frontend 통신으로 인해 단계가 추가되어 성능 저하 발생 가능 – 래퍼 라이브러리 업데이트 지연으로 최신 GPU 라이브러리 버전 사용 불가 |
- API 리모팅 방식의 최신성 유지 한계 개선 위해 GPU 드라이버 가상화 방식 등장
나. 전/반가상화 기반 커스텀 GPU 드라이버 가상화 기술
개념 | 전가상화 기반: GPU 드라이버 수정 없이 전체 에뮬레이션 기술 반가상화 기반: GPU 드라이버 수정 방식, VM 직접 제어 기술 |
---|---|
구성도 /요소 | |
원리 | ① Guest OS의 GPU 접근/실행 요청은 하이퍼바이저 관리 공유 메모리 통해 Host OS의 QEMU GPU 장치로 전달 ② QEMU 장치는 GPU 하드웨어 에뮬레이션, GPU PCIe 주소값(BAR)을 게스트 드라이버에 노출 (게스트 드라이버는 QEMU 장치를 GPU로 간주) ④ 가상 GPU 제어 블록은 가상 GPU 상태 유지, QEMU 장치에서 발행 된 GPU 요청을 대기 큐에 보관 ⑤ GPU 스케줄러는 가상 GPU를 선택하여 실행, 대기 큐에서 VM의 GPU 요청 접수 ⑥ Guest OS의 GPU 요청은 GPU에서 직접 처리되고 결과는 역 경로를 통해 응용 프로그램에 반환 |
기법 | – 전가상화 기법: GPUvm, gVirt, gHyvi, gScale 등 – 반가상화 기법: VMware SVGA II, LoGV, VGRIS, AMD HSA 등 |
장점 | – 기존 GPU 라이브러리 재사용, 향후 라이브러리의 변경에 대비 가능 – Guest OS의 GPU 요청을 하이퍼바이저가 관리, Live Migration 등 가상화 기능 지원 |
단점 | – 커스텀 GPU 드라이버에 크게 의존 – GPU 공개 문서가 없다면 커스텀 드라이버 개발에 부담 |
다. 하드웨어 지원 GPU 가상화 기술
개념 | 하이퍼바이저 개입 없이 GPU에서 VM 메모리 공간으로 데이터를 직접 전송하여 발생하는 인터럽트를 Guest OS에 직접 전달하는 기술 |
---|---|
구성도 /요소 | |
원리 | ① 라이브러리나 드라이버를 수정하지 않고 GPU 활용 ② 게스트 운영체제는 DMA와 인터럽트가 VM에 직접 매핑 ③ GPU 통신 시 하이퍼바이저를 우회하여 통신 오버헤드 없이 성능 향상 |
기법 | – 기존 기술(Intel VT-d, AMD-Vi), VT-d 기반 GPU 패스스루, SR-IOV 활용, NVIDIA GRID |
장점 | – 하이퍼바이저 등 추가 소프트웨어 계층 없이 GPU 가상화 실현 – 가상화 환경에서 네이티브 환경에 근접하는 성능 달성 |
단점 | – 하이퍼바이저 우회로 인해 전체적인 GPU 스케줄링 정책 적용 불가능 – 실행 체크 포인트, 실시간 마이그레이션, 내결함성 실행 기능 구현 어려움 |
- 기존 방식은 하나의 VM에 하나의 GPU만 할당 가능, 해당 VM 종료 전까지 GPU를 타 VM에 할당 불가
- 최근 연구에서 GPU를 동적으로 설치/제거 가능한 PCIe 채널의 핫 플러그 기능 기반 GPU를 여러 VM에 공유 구현
III. 클라우드 기반 GPU 가상화 방향
구분 | GPU 가상화 방향 | 고려 사항 |
---|---|---|
서비스 가용성 보장 측면 | 유동적 실시간 이동성 (마이그레이션) 지원 | – 수행중 작업 캡쳐 후 다른 물리서버의 VM에 복원 매커니즘 필요 – 가동 중단 시간 최소화, 데이터 손실 방지, 접근 권한 이동 등 고려 |
가상화 환경에 필요한 보안책 마련 | – GPU 가상화 프레임워크는 DoS 공격에 취약 – 악성 VM 실행속도 지연시키는 접근 제어 기법 필요 | |
시스템 성능 확보 측면 | 가상화 기반 시스템 확장성 보장 | – CPU와 GPU 자원 통합 성능 간 불균형 존재 – vGPU 생성 시 메모리, GPU 문맥교환, 캐시 등 성능 고려 |
통합된 형태의 CPU-GPU 칩 개발 | – CPU-GPU 최적화 사용 위한 정교한 스케줄링 알고리즘 필요 – 데이터 집약적 고성능 APP 위해 통합 메모리 기법, NVLink 결합 등 연구개발 필요 | |
오버헤드 최소화 측면 | 컨테이너 기반 경량 가상화 실현 | – 래퍼 라이브러리나 프론트/백엔드 드라이버 모듈 불필요 – GPU 장착 컨테이너 활용 위해 공정하고 효과적인 GPU 스케줄링 알고리즘 필요 |
통신 오버헤드 최소화 | – 반복 GPU 커널 수행 작업마다 GPU 호출 전달 시 심각한 통신 병목 발생 – API 리모팅 방식에서 GPU 집약 APP 수용 위해 최적화 된 통신 필요 | |
자원 효율성 증대 측면 | 자원의 공유 및 활용성 증대 | – GPU 스케줄링 시 높은 GPU 사용률, 공정성 달성 위해 다중화 필요 – 공간 다중화(Spatial Mux), 시간 다중화(Time Mux) |
전력 소비 효율성 향상 | – VM 간 GPU 사용 패턴 모니터링 필요 – 작업 부하에 따라 GPU 전원 상태 동적 조정 |
IV. 클라우드 기반 GPU 가상화 기술 비교
비교 항목 | API 리모팅 | 하이퍼바이저 활용 | 하드웨어 지원 | |
---|---|---|---|---|
전가상화 | 반가상화 | |||
특징 | – GPU 하드웨어 미지원 가상화 구현 – GPU 라이브러리 복제인 래퍼를 VM에 제공, 원격 처리 | – 하이퍼바이저 기반 GPU 가상화 – GPU 드라이버 가상화 | – 하이퍼바이저 기반 GPU 가상화 – GPU 드라이버 가상화 | – GPU/CPU 벤더가 가상화 기술 지원 |
장점 | – 드라이버 미공개 상용 GPU에 대해 드라이버 우회 기반 가상화 실현 | – GPU 드라이버 미수정 에뮬레이션 | – VM이 직접 드라이버 제어, 성능 향상 | – 높은 성능 및 호환성 제공 |
단점 | – 성능 저하, 구현 어려움 – 지속 업데이트 불가 | – 높은 드라이버 의존도 – 다소 낮은 성능 | – 높은 드라이버 의존도 – 드라이버 수정 필요 | – 높은 하드웨어 종속성 |
- GPU를 그래픽 처리 이외의 목적으로 활용하는 GPGPU가 등장하며 컴퓨팅 가성비 상승
- GPU 활용은 클라우드 컴퓨팅 인프라 구축, VR/AR 등 다양한 서비스의 기반 기술로 연계
- 4차산업혁명 선도 위해 AI의 안정적인 성능확보 및 활용 확산이 필요하며, 이를 위해 클라우드 기반 GPU 가상화 인프라 투자는 반드시 필요
[참고]
- 소프트웨어정책연구소(SPRi), “이슈리포트, AI 성능개선을 위한 클라우드 GPU 가상화 기술의 현황과 향후방향”, 2020. 04
One Comment
잘 참고하였습니다! 감사합니다