O tutorial do SBLP 2025, patrocinado pela Cadence Design Systems, apresentará uma introdução à Multi-Level Intermediate Representation (MLIR), voltada para pessoas que estudam, pesquisam ou trabalham com compiladores, otimizações e machine learning. Conhecimentos prévios em LLVM ou MLIR não são obrigatórios — apenas curiosidade e vontade de aprender!
O MLIR é uma infraestrutura poderosa para representar e transformar programas em múltiplos níveis de abstração. Este tutorial explorará como o MLIR pode ser usado para compilar e otimizar representações de grafos computacionais, como os encontrados em redes neurais. Serão apresentados os conceitos fundamentais do MLIR: representações intermediárias e suas estruturas, dialetos e passes. Também será discutido como o MLIR se encaixa no ecossistema de compiladores modernos e por que tem se tornado essencial em aplicações de machine learning e além.
O tutorial também permitirá que os participantes botem a mão na massa! Através de um exercício prático, acompanharemos o rebaixamento (lowering) de uma multiplicação de matrizes 2D escrita no dialeto linalg até o nível de representação intermediária (IR) do LLVM. Durante o processo, aplicaremos transformações como unroll de laços e uso do dialeto scf, proporcionando uma visão concreta de como o MLIR permite otimizações progressivas e controladas.
Guilherme Silva é mestre em Ciência da Computação pela Universidade Federal de Minas Gerais. Durante a pós-graduação, trabalhou no desenvolvimento de um SDK para um projeto nacional de microchip baseado em RISC-V e desenvolveu uma técnica de compilação certificada. Atualmente, é engenheiro de compiladores na Cadence e trabalha na otimização de redes neurais para execução em DSPs da empresa.
Rafael Sumitani é bacharel em Ciência da Computação pela Universidade Federal de Minas Gerais. Durante a graduação, teve experiência com pesquisa na área de compiladores, com foco em análise automática de complexidade e em fuzzing. Atualmente é Engenheiro de Software na Cadence Design Systems, onde trabalha no desenvolvimento de compiladores voltados para a otimização de modelos de inteligência artificial.
Michael Canesche é doutor em Ciência da Computação pela Universidade Federal de Minas Gerais (UFMG), com ênfase em Compiladores. É também mestre e bacharel em Ciência da Computação pela Universidade Federal de Viçosa (UFV), com foco em Arquitetura de Computadores. Atualmente, atua como Engenheiro de Software Líder na Cadence Design Systems, onde trabalha no desenvolvimento de compiladores voltados para a otimização de modelos de inteligência artificial.