A framework for fast architecture exploration of convolutional neural network accelerators - Juracy, Leonardo Rezende (2022)
Aprendizado de Máquina (ML, do inglês, Machine Learning) é uma subárea da inteligência artificial que compreende algoritmos para resolver problemas de classificação e reconhecimento de padrões. Uma das maneiras mais comuns de desenvolver ML atualmente é usando Redes Neurais Artificiais, especificamente Redes Neurais Convolucionais (CNN, do inglês, Convolutional Neural Networks). As GPUs tornaram-se as plataformas de referência para as fases de treinamento e inferência das CNNs devido à sua arquitetura adaptada aos operadores da CNN. No entanto, as GPUs são arquiteturas que consomem muita energia. Um caminho para permitir a implementação de CNNs em dispositivos com restrição de energia é adotar aceleradores de hardware para a fase de inferência. No entanto, a literatura apresenta lacunas em relação às análises e comparações desses aceleradores para avaliar os compromissos Potência-Desempenho-Área (PPA, do inglês, Power-Performance-Area). Normalmente, a literatura estima PPA a partir do número de operações executadas durante a fase de inferência, como o número de MACs (do inglês, Multiplier-Accumulator), o que pode não refletir o comportamento real do hardware. Assim, é necessário fornecer estimativas de hardware precisas, permitindo a exploração do espaço de projeto (DSE, do inglês, Design Space Exploration) para implementar as CNNs de acordo com as restrições de projeto. Esta Tese propõe duas abordagens de DSE para CNNs. A primeira adota um simulador de sistema com precisão de ciclo de relógio e usa uma linguagem de alto nível para descrever o hardware de forma abstrata. Essa primeira abordagem, usa o TensorFlow como front-end para treinamento, enquanto o back-end gera estimativas de desempenho por meio da síntese física de aceleradores de hardware. A segunda abordagem, é um DSE rápido e preciso, usando um modelo analítico construído a partir dos resultados da síntese física de aceleradores de hardware. O modelo analítico estima a área de silício, desempenho, potência, energia e quantidade de acessos à memória. O erro médio do pior caso observado comparando o modelo analítico com os dados obtidos da síntese física é inferior a 8%. Embora a segunda abordagem permita obter resultados precisos e de forma rápida, a primeira abordagem permite simular um sistema computacional completo, considerando possíveis redundâncias na modelagem de aceleradores. Esta Tese avança o estado da arte, apresentando métodos para gerar uma avaliação abrangente de PPA, integrando estruturas de front-end (por exemplo, TensorFlow) a um fluxo de design de back-end.