No Simpósio Internacional de Física de Confiabilidade (IRPS), engenheiros da Intel descreveram um método que usa aprendizado de reforço para ajudar a identificar bugs ocultos em processadores. A longo prazo, isso nos permitirá melhorar sistematicamente sua confiabilidade.
Fonte da imagem: Rubaitul Azad / unsplash.com
Quando um dos nós em um data center comete um erro computacional, o operador pode desativá-lo e substituí-lo ou movê-lo para um segmento com cálculos de prioridade mais baixa. Mas seria muito melhor detectar erros mais cedo — de preferência antes mesmo do chip estar no sistema, quando ainda é possível fazer alterações no projeto ou no processo de fabricação para evitar que isso aconteça no futuro.
Há muitas causas possíveis para os erros — os pesquisadores da Intel forneceram uma lista extensa — e a maioria delas pode ser atribuída a variações de fabricação extremamente pequenas. Mesmo que cada um dos bilhões de transistores em um chip esteja funcionando, eles não são completamente idênticos: pequenas diferenças na maneira como os transistores individuais respondem a mudanças de temperatura, voltagem ou frequência podem levar a erros.
Na maioria das vezes, essas nuances aparecem quando um grande número de processadores está operando em grandes data centers, onde altas velocidades de computação são observadas e um grande número de componentes de silício são usados. Em um laptop, esses erros são praticamente imperceptíveis. Em alguns casos, as falhas podem não ocorrer até meses após o processador ter sido instalado no sistema. Pequenas mudanças nas propriedades dos transistores ao longo do tempo levam à sua degradação. Um exemplo envolve o aumento da resistência elétrica: o transistor inicialmente funcionou corretamente e passou nos testes padrão de curto-circuito, mas com o tempo sua resistência aumentou, causando sua falha.
A tecnologia proposta pela Intel é baseada em métodos já conhecidos para detecção de erros ocultos – os chamados testes Eigen. Esses testes envolvem o chip resolvendo repetidamente problemas matemáticos complexos ao longo de um período de tempo, e erros latentes gradualmente se tornam aparentes. As tarefas envolvem operações com matrizes de vários tamanhos preenchidas com dados aleatórios. Há muitos testes próprios, e executá-los todos levaria muito tempo, então os fabricantes de chips usam uma abordagem seletiva, formando conjuntos gerenciáveis. Isso economiza tempo, mas nem sempre é eficaz na identificação de erros.
Os engenheiros da Intel implementaram uma tecnologia de aprendizado por reforço que ajudou a criar testes mais eficientes para processadores Xeon que realizam multiplicação de matrizes usando instruções de multiplicação e adição fundidas (FMA). A execução dessas instruções usa uma quantidade significativa de espaço físico no chip, tornando-o mais vulnerável a defeitos ocultos: mais silício significa mais problemas em potencial. Defeitos nessas áreas podem gerar campos eletromagnéticos que afetam outras partes do sistema. Para economizar energia, o modo FMA é desativado quando não está em uso e ligado e desligado repetidamente durante os testes, aumentando as chances de detectar defeitos ocultos que não são visíveis em testes padrão.
Em cada estágio, o programa de aprendizado por reforço seleciona diferentes testes para o chip potencialmente defeituoso. Cada erro detectado é percebido pelo sistema de IA como uma “recompensa” e, com o tempo, o algoritmo aprende a selecionar os testes que têm maior probabilidade de detectar erros. Após aproximadamente 500 ciclos de teste, o algoritmo determinou qual conjunto de testes próprios era mais eficaz na identificação rápida de erros na execução de instruções FMA.
Na prática, essa tecnologia provou ser cinco vezes mais eficaz do que a seleção aleatória de testes próprios. Como os testes em si são de código aberto, outros pesquisadores também podem usar o aprendizado de reforço para criar seus próprios conjuntos de testes. Os cientistas da Intel já foram além: eles planejam usar os dados obtidos para identificar rapidamente as causas raiz de erros ocultos. O objetivo é entender se há precursores que podem fornecer alertas antecipados de possíveis falhas e se o design ou o processo de fabricação dos chips podem ser alterados para gerenciar esses riscos.