Hermes: um protótipo de ferramenta de entrega serverless com suporte para GPUs


Nos últimos anos, as GPUs têm ganhado cada vez mais importância na comunidade científica e na indústria. Apesar disso, o fluxo de desenvolvimento de aplicações aceleradas por GPUs se mantém com diversos inconvenientes. Um desses é a configuração do ambiente de desenvolvimento: tanto o desenvolvimento local quanto o remoto trazem consigo atritos para compilar e executar código. A alternativa local exige disponibilidade de uma GPU por programador, além de configuração de drivers e kits de desenvolvimento; a alternativa remota exige acesso via SSH e alterações no código com editores de linha de comando. Paralelamente a isso, tem crescido na indústria o uso do paradigma serverless, que consiste em um modelo de execução de aplicações em que grande parte da configuração do ambiente de execução é abstraído do desenvolvedor.

Dado este contexto, o objetivo deste projeto é criar um protótipo do que chamamos de Hermes, uma ferramenta de entrega serverless de execuções, com suporte para linguagens CUDA e C++ e possibilidade do uso de GPUs. Espera-se, com a utilização do Hermes, amenizar o atrito no fluxo de desenvolvimento para GPUs.