25 ago 2025
10:00 Defesa de Mestrado Auditório do IC3
Tema
Compiladores de Aprendizado Profundo na Geração de Kernels de Processamento de Sinais
Aluno
João Alberto Moreira Seródio
Orientador / Docente
Edson Borin
Breve resumo
Na última década, o crescimento da comunidade de Aprendizado de Máquina (ML) impulsionou o surgimento de um ecossistema de software e hardware especializado para este domínio.
Dentre os softwares que compõem o ecossistema, ferramentas para compilação de modelos de Aprendizado Profundo (DL) foram desenvolvidas com o intuito de extrair o melhor desempenho de diferentes arquiteturas de hardware de forma transparente ao usuário final.
Essas ferramentas, comumente chamadas de compiladores de DL, vêm apresentando bons resultados na geração de código para operações tensoriais do domínio de DL.
Considerando que domínios da computação científica, como o processamento digital de sinais, podem se beneficiar da otimização de operações tensoriais proporcionada por essas ferramentas, exploramos a geração de código para alguns operadores numéricos específicos desse domínio. Para isso, utilizamos compiladores de DL tendo CPUs e GPUs de quatro diferentes máquinas (um laptop, um desktop e dois servidores) como alvo da compilação. Dois compiladores associados a arcabouços de treinamento foram testados: JAX/XLA (TensorFlow) e TorchDynamo/TorchInductor (PyTorch), além de um compilador standalone, o Apache TVM. A avaliação dos operadores é realizada no âmbito de tempo de execução e consumo de memória, e se utiliza de implementações de referência em CPU e GPU, implementadas com NumPy+SciPy e CuPy, respectivamente. Além disso, testamos a escalabilidade dos operadores em um caso de uso real que consiste no processamento do dado sísmico Parihaka, um volume de aproximadamente 4.5 GB.
Os resultados experimentais mostraram que compiladores de DL podem ser boas alternativas para implementações portáveis de operadores numéricos, apresentando ganhos modestos frente a operações que já são bastante otimizadas nas implementações de referência (e.g., FFT), e chegando a ficar ordens de grandeza mais rápidos para implementações não otimizadas (e.g., GLCM).
Esse ganho de desempenho é acompanhado por um maior consumo de memória, que pode levar a falhas de execução em máquinas mais restritas (e.g. laptops).
Banca examinadora
Titulares:
| Edson Borin | IC/UNICAMP |
| Jose Nelson Amaral | University of Alberta |
| Hervé Cédric Yviquel | IC/UNICAMP |
Suplentes:
| Samuel Xavier de Souza | DCA/UFRN |
| Lucas Francisco Wanner | IC/UNICAMP |