Trabalho de conclusão de graduação
VirtCUDA : possibilitando a execução de aplicações CUDA em máquinas virtuais
Author
Santos, Alan Diego dos
Institutions
Abstract
Atualmente, os computadores são bastante utilizados para aplicações críticas nas organizações. Algumas dessas aplicações utilizam uma grande quantidade de recursos. Contudo, é possível observar recursos subutilizados dentro da infraestrutura dessas organizações. A utilização de máquinas virtuais pode contornar esse problema, uma vez que elas garantem uma maior utilização dos recursos disponíveis em cada máquina física. Todavia, a aplicação dessa técnica em alguns dispositivos é bastante limitada. Além disso, com o crescimento do poder computacional desses dispositivos, a GPU começou a ser utilizada para a execução de aplicações genéricas. No entanto, para utilizar esses dispositivos era necessário adequar os dados para matrizes, o que dificultava o desenvolvimento de aplicações. Nesse contexto, existem frameworks que abstraem essa limitação das GPUs, possibilitando a aplicação do dispositivo em aplicações genéricas, técnica conhecida como GPGPU. A aplicação de GPGPU em máquinas virtuais é bastante limitada atualmente. Por esse motivo, o objetivo deste trabalho é apresentar uma arquitetura de virtualização da GPU, através da disponibilização do framework CUDA para aplicações executando dentro da VM. Além disso, é apresentada uma forma de implementação dessa funcionalidade em uma ferramenta de virtualização, o VirtualBox OSE. Today computers are widely used for critical applications in organizations. Some of these applications use a lot of resources. However, it is possible to observe underutilized resources within the infrastructure of these organizations. The use of virtual machines can work around this problem, since they ensure a greater use of available resources on each physical machine. However, applying this technique in some devices is fairly limited. Furthermore, with the growth of computational power of these devices, the GPU are used for the implementation of generic applications. However, the use of these devices need the adjust the data for arrays, which complicates the application development. In this context, there are some frameworks that abstract the limitation of the GPU, allowing the use of the device in generic applications, a technique known as GPGPU. The application of GPGPU in virtual machines is currently quite limited. Therefore, the aim of this paper is to present a virtualization architecture of the GPU, by providing the framework for CUDA applications running inside the VM. Furthermore, we present a way to implement this functionality in a virtualization tool called VirtualBox OSE.