14 dez 2023
14:00 Defesa de Mestrado Auditório do IC3
Tema
Aprimorando Convolução Direta por Empacotamento Vetorizado e Extensões de ISA
Aluno
Victor Ferreira Ferrari
Orientador / Docente
Guido Costa Souza de Araújo
Breve resumo
A convolução é uma das operações mais computacionalmente custosas que devem ser computadas para inferência de modelos de aprendizado de máquina. Um método tradicional para resolver convoluções é conhecido como Im2Col + BLAS. Esta dissertação descreve SConv: um algoritmo de convolução direta baseado em geração de código MLIR/LLVM, que pode ser integrado em compiladores para aprendizado de máquina. Este algoritmo introduz: (a) Convolution Slicing Analysis (CSA) — um passe de análise para cache-blocking específico para convoluções 3D, focando em reuso de elementos na hierarquia de cache; (b) Convolution Slicing Optimization (CSO) — um passe de geração de código que usa o CSA para gerar um macro-kernel de convolução direta em partes; e (c) Vector-Based Packing (VBP) — uma solução otimizada, específica de cada arquitetura, para empacotamento do tensor de entrada da convolução, baseado em instruções de deslocamento de elementos em registradores vetoriais, para convoluções com passo unitário. Experimentos feitos em 393 convoluções de modelos de aprendizado de máquina completos no framework ONNX-MLIR indicam que a eliminação da transformação Im2Col e o uso de rotinas rápidas de empacotamento resultam em uma redução total de tempo de empacotamento, na inferência completa de modelos, de 2,3x – 4,0x na arquitetura Intel x86 e 3,3x – 5,9x na arquitetura IBM POWER10. A melhoria de desempenho sobre um método Im2Col + BLAS baseado em implementação atuais de BLAS, para inferência fim-a-fim de modelos de aprendizado de máquina, está no intervalo de 11% – 27% para Intel x86 e 11% – 34% para IBM POWER10. A aceleração total de convoluções para inferência de modelos é de 13% – 28% em Intel x86 e 23% – 39% em IBM POWER10. SConv também tem melhor desempenho que a rotina GEMM da biblioteca BLAS, quando computando convoluções pointwise em mais de 82% das 219 instâncias testadas.
Banca examinadora
Titulares:
Guido Costa Souza de Araújo IC/UNICAMP
Fernando Magno Quintão Pereira DCC/UFMG
Lucas Francisco Wanner IC/UNICAMP
Suplentes:
Hervé Cédric Yviquel IC/UNICAMP
Vanderlei Bonato ICMC/USP