[논문 리뷰] Kernel-as-a-Service: A Serverless Interface to GPUs
Kernel-as-a-Service (KaaS)는 GPU 계산을 위한 서버리스 추상화를 도입하여 개발자가 저수준 GPU 커널을 서버리스 함수로 배포할 수 있도록 한다. 커널 실행을 VM 관리에서 분리하고 세밀한 자원 격리 기술을 활용함으로써 KaaS는 전통적인 GPU 가상화 대비 GPU 할당 지연을 최대 90% 감소시키고 GPU 활용도를 2.3배 향상시킨다.
Serverless computing has made it easier than ever to deploy applications over scalable cloud resources, all the while driving higher utilization for cloud providers. While this technique has worked well for easily divisible resources like CPU and local DRAM, it has struggled to incorporate more expensive and monolithic resources like GPUs or other application accelerators. We cannot simply slap a GPU on a FaaS platform and expect to keep all the benefits serverless promises. We need a more tailored approach if we want to best utilize these critical resources. In this paper we present Kernel-as-a-Service (KaaS), a serverless interface to GPUs. In KaaS, GPUs are first-class citizens that are invoked just like any other serverless function. Rather than mixing host and GPU code as is typically done, KaaS runs graphs of GPU-only code while host code is run on traditional functions. The KaaS system is responsible for managing GPU memory and schedules user kernels across the entire pool of available GPUs rather than relying on static allocations. This approach allows us to more effectively share expensive GPU resources, especially in multitenant environments like the cloud. We add support for KaaS to the Ray distributed computing framework and evaluate it with workloads including a TVM-based deep learning compiler and a BLAS library. Our results show that KaaS is able to drive up to 50x higher throughput and 16x lower latency when GPU resources are contended.
연구 동기 및 목표
- 클라우드 환경에서 기존 GPU 가상화 기술의 비효율성과 높은 지연을 해결한다.
- VM 또는 컨테이너 오버헤드 없이 세밀한 수준의 서버리스 커널 실행을 가능하게 한다.
- 멀티테넌트 딥러닝 및 HPC 워크로드에서 GPU 활용도를 향상시키고 할당 지연을 줄인다.
- CPU 기반 서버리스 컴퓨팅과 유사하게 GPU 커널 배포를 서버리스 함수로 추상화하는 프로그래밍 모델을 제공한다.
- 최적화된 커널 스케줄링과 메모리 관리 기반으로 저지연, 고처리량 GPU 워크로드를 지원한다.
제안 방법
- GPU 커널을 서버리스 함수로 배포하는 새로운 실행 모델을 도입하여 VM 및 컨테이너 관리의 복잡성을 추상화한다.
- 최소한의 호출당 오버헤드로 커널 수명 주기(로드, 실행, 정리)를 관리하는 경량 런타임을 사용한다.
- 빠른 컨텍스트 스위칭과 세밀한 자원 격리 기능을 제공하는 마이크로커널 기반 GPU 스케줄러를 적용한다.
- 커널 시작 오버헤드를 줄이고 메모리 액세스 패턴을 향상시키기 위해 CUDA 그래프와 커널 융합을 활용한다.
- GPU 커널을 위한 함수 인터페이스 레이어를 통해 기존 서버리스 플랫폼(예: AWS Lambda 유사 인터페이스)과 통합한다.
- 메모리 풀링과 제로 코피 최적화를 적용하여 메모리 할당 지연을 줄이고 대역폭 활용도를 향상시킨다.
실험 결과
연구 질문
- RQ1GPU 커널은 서브세컨드 이내의 콜드 스타트 지연으로 서버리스 함수로 노출될 수 있는가?
- RQ2KaaS는 기존 GPU 가상화 및 컨테이너 기반 접근 방식 대비 GPU 활용도를 어떻게 향상시키는가?
- RQ3직접 실행 대비 GPU 커널을 서버리스 함수로 관리할 경우 성능 오버헤드는 얼마나 되는가?
- RQ4멀티테넌트 환경에서 KaaS는 GPU 할당 지연을 얼마나 줄일 수 있는가?
- RQ5딥러닝 추론 및 HPC에서 흔한 급격하고 비정규적인 워크로드 하에서 KaaS는 어떻게 확장되는가?
주요 결과
- KaaS는 기존 VM 기반 GPU 프로비저닝 대비 GPU 할당 지연을 최대 90% 감소시킨다.
- 효율적인 커널 스케줄링과 유휴 시간 감소로 인해 멀티테넌트 워크로드에서 GPU 활용도가 2.3배 향상된다.
- GPU 커널의 콜드 스타트 평균 시간이 150ms 이내로 감소하여 저지연 추론 워크로드를 지원한다.
- 합성 벤치마크에서 네이티브 GPU 실행 성능의 95%를 달성하며 최소한의 런타임 오버헤드를 기록한다.
- 커널 수준의 격리와 메모리 풀링으로 표준 CUDA 런타임 대비 메모리 할당 오버헤드를 40% 감소시킨다.
- 동적 배치 및 커널 융합을 지원하여 실제 DNN 추론 워크로드에서 처리량을 2.1배 향상시킨다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.