Crédito CC0:domínio público
Os pesquisadores do MIT inventaram uma ferramenta de aprendizado de máquina que prevê a velocidade com que os chips de computador executam códigos de vários aplicativos.
Para fazer o código rodar o mais rápido possível, desenvolvedores e compiladores - programas que traduzem a linguagem de programação em código legível por máquina - normalmente usam modelos de desempenho que executam o código por meio de uma simulação de determinadas arquiteturas de chip.
Os compiladores usam essas informações para otimizar o código automaticamente, e os desenvolvedores o usam para resolver gargalos de desempenho nos microprocessadores que irão executá-lo. Mas os modelos de desempenho para código de máquina são escritos à mão por um grupo relativamente pequeno de especialistas e não são devidamente validados. Como consequência, as medições de desempenho simuladas muitas vezes se desviam dos resultados da vida real.
Em uma série de documentos de conferências, os pesquisadores descrevem um novo pipeline de aprendizado de máquina que automatiza esse processo, tornando mais fácil, mais rápido, e mais preciso. Em um artigo apresentado na Conferência Internacional sobre Aprendizado de Máquina em junho, os pesquisadores apresentaram Ithemal, um modelo de rede neural que treina em dados rotulados na forma de "blocos básicos" - fragmentos fundamentais de instruções de computação - para prever automaticamente quanto tempo leva para um determinado chip executar blocos básicos não vistos anteriormente. Os resultados sugerem que o Ithemal tem um desempenho muito mais preciso do que os modelos tradicionais ajustados manualmente.
Então, no Simpósio Internacional IEEE de Caracterização de Carga de Trabalho de novembro, os pesquisadores apresentaram um conjunto de benchmark de blocos básicos de uma variedade de domínios, incluindo aprendizado de máquina, compiladores, criptografia, e gráficos que podem ser usados para validar modelos de desempenho. Eles reuniram mais de 300, 000 dos blocos perfilados em um conjunto de dados de código aberto chamado BHive. Durante suas avaliações, Ithemal previu a velocidade com que os chips da Intel executariam códigos ainda melhor do que um modelo de desempenho construído pela própria Intel.
Em última análise, os desenvolvedores e compiladores podem usar a ferramenta para gerar código que é executado de forma mais rápida e eficiente em um número cada vez maior de designs de chips diversos e "caixa preta". "Os processadores de computador modernos são opacos, terrivelmente complicado, e difícil de entender. Também é incrivelmente desafiador escrever código de computador que execute o mais rápido possível para esses processadores, "diz o co-autor Michael Carbin, professora assistente do Departamento de Engenharia Elétrica e Ciência da Computação (EECS) e pesquisadora do Laboratório de Ciência da Computação e Inteligência Artificial (CSAIL). "Esta ferramenta é um grande passo em direção à modelagem completa do desempenho desses chips para maior eficiência."
Mais recentemente, em um artigo apresentado na conferência NeurIPS em dezembro, a equipe propôs uma nova técnica para gerar otimizações de compilador automaticamente. Especificamente, eles geram automaticamente um algoritmo, chamado Vemal, que converte certos códigos em vetores, que pode ser usado para computação paralela. O Vemal supera os algoritmos de vetorização feitos à mão usados no compilador LLVM - um compilador popular usado na indústria.
Aprendendo com os dados
Projetar modelos de desempenho manualmente pode ser "uma arte negra, "Carbin diz. Intel fornece extensa documentação de mais de 3, 000 páginas descrevendo as arquiteturas de seus chips. Mas atualmente existe apenas um pequeno grupo de especialistas que construirão modelos de desempenho que simulam a execução de código nessas arquiteturas.
"Os documentos da Intel não estão isentos de erros nem completos, e a Intel irá omitir certas coisas, porque é proprietário, "Mendis diz." No entanto, quando você usa dados, você não precisa saber a documentação. Se houver algo oculto, você pode aprender diretamente com os dados. "
Para fazer isso, os pesquisadores cronometraram o número médio de ciclos que um determinado microprocessador leva para calcular as instruções de bloco básicas - basicamente, a sequência de inicialização, executar, e desligados - sem intervenção humana. Automatizar o processo permite a criação rápida de perfis de centenas de milhares ou milhões de blocos.
Arquiteturas específicas de domínio
Em treinamento, o modelo Ithemal analisa milhões de blocos básicos perfilados automaticamente para aprender exatamente como as diferentes arquiteturas de chip executarão a computação. Mais importante, Ithemal usa o texto bruto como entrada e não requer a adição manual de recursos aos dados de entrada. Em teste, Ithemal pode ser alimentado com blocos básicos não vistos anteriormente e um determinado chip, e gerará um único número indicando a rapidez com que o chip executará esse código.
Os pesquisadores descobriram que o Ithemal reduziu as taxas de erro na precisão - significando a diferença entre a velocidade prevista e a velocidade do mundo real - em 50 por cento em relação aos modelos artesanais tradicionais. Avançar, em seu próximo artigo, eles mostraram que a taxa de erro do Ithemal era de 10 por cento, enquanto a taxa de erro do modelo de previsão de desempenho da Intel foi de 20 por cento em uma variedade de blocos básicos em vários domínios diferentes.
A ferramenta agora torna mais fácil aprender rapidamente as velocidades de desempenho para qualquer nova arquitetura de chip, Mendis diz. Por exemplo, arquiteturas de domínio específico, como a nova unidade de processamento de tensor do Google, usada especificamente para redes neurais, agora estão sendo construídos, mas não são amplamente compreendidos. "Se você quiser treinar um modelo em alguma nova arquitetura, você apenas coleta mais dados dessa arquitetura, execute-o através do nosso profiler, usar essas informações para treinar Ithemal, e agora você tem um modelo que prevê desempenho, "Mendis diz.
Próximo, os pesquisadores estão estudando métodos para tornar os modelos interpretáveis. Muito do aprendizado de máquina é uma caixa preta, portanto, não está muito claro por que um modelo específico fez suas previsões. "Nosso modelo está dizendo que é necessário um processador, dizer, 10 ciclos para executar um bloco básico. Agora, estamos tentando descobrir por que, "Carbin diz." Esse é um bom nível de granularidade que seria incrível para esses tipos de ferramentas. "
Eles também esperam usar o Ithemal para aprimorar ainda mais o desempenho do Vemal e obter um desempenho melhor automaticamente.
Esta história foi republicada por cortesia do MIT News (web.mit.edu/newsoffice/), um site popular que cobre notícias sobre pesquisas do MIT, inovação e ensino.