클라우드 기반 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

콘텐츠 사용 시 출처 표기 부탁 드리고, 댓글은 큰 힘이 됩니다^^