Aluno do DCC/UFMG implementa algoritmo que será usado pelo Apache TVM

No último sábado, 29, o algoritmo Droplet Search para otimização de kernel, projetado pelo aluno do Laboratório de Compiladores do Departamento de Ciência da Computação (DCC) da UFMG e do Programa de Pós-graduação em Ciência da Computação (PPGCC) da universidade, Michael Canesche, foi aceito no Apache TVM e estará disponível nas próximas versões do compilador. O algoritmo é parte da pesquisa de doutorado do aluno, que vem trabalhando nessa construção há cerca de quatro meses. “Me sinto realizado com a pesquisa que venho trabalhando. Como aluno de doutorado do PPGCC, percebo que a infraestrutura do programa e a orientação por parte do professor do DCC e coordenador do laboratório, Fernando Magno Quintão Pereira, são fatores ímpar em minha formação como cientista e desenvolvedor”, afirmou. 

De acordo com Fernando, o Apache TVM é um compilador de código aberto para CPUs, GPUs e aceleradores especializado em gerar código para modelos de aprendizagem automática. “Este compilador permite que desenvolvedores  melhorem os kernels que constituem os modelos de aprendizado profundo. Um kernel é uma função que aplica a mesma computação em cada ponto de um espaço de interação. Soa estranho? Não é! Multiplicação, transposição e convolução de matrizes são todos kernels. Se você olhar profundamente um modelo de aprendizado profundo (trocadilho!), tudo o que verá são composições de kernels”, explicou. Para Michael, a criação do algoritmo é uma contribuição ao projeto TVM. “TVM significa “Tensor Virtual Machine” em inglês. Como explicou o professor, o TVM fornece uma estrutura unificada para desenvolver modelos eficientes de aprendizado profundo que podem ser executados em CPUs, GPUs, aceleradores especializados e outros dispositivos de hardware. O código que submeti teve o objetivo de contribuir com essa gama de algoritmos já existentes no projeto”, disse.

Ainda de acordo com o professor, encontrar a melhor implementação para um kernel é complicado. “O mesmo algoritmo abstrato, por exemplo, multiplicação de matrizes, pode ser implementado de muitas (realmente muitas!) maneiras. Droplet Search é um algoritmo para encontrar boas implementações. Baseia-se na observação de que os kernels podem ser agrupados em um espaço de coordenadas. Geralmente a origem desse espaço e a melhor configuração de um kernel, também conhecido como ótimo global, existem na mesma região convexa”, descreveu.

Para implementar o Droplet Search, Canesche contou com o auxílio de outros pesquisadores do Laboratório, da UNICAMP e da Cadence Design Systems, uma das patrocinadoras da pesquisa junto com o CNPq. “No laboratório, além do professor Fernando, o Rafael Sumitani e o Lucas Silva vêm trabalhando comigo. Na Unicamp, o professor Edson Borin e a estudante de doutorado Thais Camacho também fizeram parte da construção, assim como também o Vanderson Rosário e o Eric Stotzer, da Cadence. A participação deles é fundamental no meu projeto, durante as reuniões são discutidas ideias e planejado os próximos passos da pesquisa”, afirmou Michael.

No fim de abril deste ano, o Droplet Search foi incorporado ao AutoTVM, um módulo do TVM encarregado de encontrar boas configurações de kernel. Assim, o Droplet Search já está na versão de desenvolvimento e estará disponível na próxima versão oficial do Apache TVM.

Confira o código: https://lnkd.in/dkzKtQnwSaiba mais sobre Apache TVM: https://tvm.apache.org/

Acesso por PERFIL

Pular para o conteúdo