Abstract
RPC (Remote Procedure Call)-based Graphics Processing Unit (GPU) virtualization technology is one of the technologies for sharing GPUs with multiple user virtual machines. However, in a cloud environment, unlike CPU or memory, general GPUs do not provide a resource isolation technology that can limit the resource usage of virtual machines. In particular, in an RPC-based virtualization environment, since GPU tasks executed in each virtual machine are performed in the form of multi-process, the lack of resource isolation technology causes performance degradation due to resource competition. In addition, the GPU memory competition accelerates the performance degradation as the resource demand of the virtual machines increases, and the fairness decreases because it cannot guarantee equal performance between virtual machines. This paper, in the RPC-based GPU virtualization environment, analyzes the performance degradation problem caused by resource contention when the GPU memory requirement of virtual machines exceeds the available GPU memory capacity and proposes a GPU memory management technique to solve this problem. Also, experiments show that the GPU memory management technique proposed in this paper can improve the performance of GPGPU tasks.
RPC(Remote Procedure Call) 기반 GPU(Graphics Processing Unit) 가상화 기술은 다수의 사용자 가상머신에게 GPU를 공유하기 위한 기술 중 하나이다. 하지만 클라우드 환경에서 일반적인 GPU는 CPU나 메모리와는 다르게 가상머신의 자원 사용량을 제한할 수 있는 자원 격리(Isolation) 기술을 제공하지 않는다. 특히 RPC 기반 가상화 환경에서는 각 가상머신에서 실행되는 GPU 작업은 멀티 프로세스 형태로 수행되기 때문에 자원격리 기술의 부재는 자원 경쟁으로 인한 성능 저하 문제를 발생시킨다. 그리고 GPU 메모리 경쟁은 가상머신들의 자원 요구량이 많을수록 성능저하를 가속화하고 가상머신 사이의 균등한 성능을 보장하지 못하기 때문에 공평성이 저하되는 문제를 발생시킨다. 본 논문에서는 RPC 기반 GPU 가상화 환경에서 사용자 가상머신들의 GPU 메모리 요구량이 가용 GPU 메모리 용량을 초과했을 때 발생하는 자원 경쟁으로 인한 성능 저하 문제 분석하고 이를 해결하기 위한 GPU 메모리 관리 기법을 제안한다. 또한, 실험을 통해 본 논문에서 제안한 GPU 메모리 관리 기법이 GPGPU 작업의 성능을 향상시킬 수 있다는 것을 보여준다.