Testando multicore chips através de aprendizagem por reforço
Author:
Meditsch, Diego Martins
Abstract:
A otimização de etapas do fluxo de síntese de circuitos integrados engloba um conjunto de etapas visando o projeto de circuitos integrados mais robustos, eficientes e adequados às demandas características das aplicações finais destes circuitos. Um caso especial de projeto de circuitos integrados é o projeto de processadores, especialmente processadores multicore. Processadores multicore interagem através da memória compartilhada, cujo comportamento é especificado por um modelo de consistência de memória (MCM). Para verificar a corretude desse sistema antes de sintetizá-lo em silício, geram-se programas concorrentes que ao serem executados criam estímulos na interface de cada core com o sistema de memória compartilhada. Diante desses estímulos, faz-se uso de checkers que averiguam se o comportamento resultante foi o esperado para cada instância de execução dos programas gerados. A geração de testes que maximizem a cobertura de possíveis interações entre cores e sistema de memória, assim como fazê-lo no menor tempo possível é a área de interesse desta pesquisa. Dentro desse contexto, busca-se desenvolver agentes inteligentes que sejam capazes de gerar sequências de testes que atinjam alta cobertura em tempo mínimo, de maneira independente do MCM-alvo e ISA de cada processador. Para este fim, o trabalho descrito nesse relatório fez uso de técnicas de Reinforcement Learning aplicadas a um agente inteligente, que através da interação com o ambiente é treinado em tempo de execução para a geração efetiva de testes. O desenvolvimento foi realizado sobre a infraestrutura já presente no laboratório, buscando atingir resultados superiores aos agentes já existentes - tanto na literatura externa quanto em versões anteriores produzidas in loco. Para isso, buscou-se aprimorar as técnicas de tuning utilizadas na produção do último agente proposto pela equipe do laboratório por meio da implementação de algoritmos de tuning automático. Além disso, dedicou-se algum tempo para fazer a compra e montagem de uma nova máquina para o laboratório, especificamente pensada para executar os experimentos realizados a fim de validar os geradores acima descritos. Por fim, foi realizada a implementação e experimentação de novas maneiras de representar o ambiente com o qual o agente inteligente interage, por meio da modificação da interface entre o agente e o ambiente, que é capturada pelo checker, buscando amostrar novos tipos de eventos gerados pelo MCM, os quais serão usados para a melhor representação de estados do sistema. Uma melhor representação de estados, nesse contexto, promete melhorar a cobertura atingida pelo agente.
Description:
Seminário de Iniciação Científica e Tecnológica.
Universidade Federal de Santa Catarina.
Centro Tecnológico.
Departamento de Informática e Estatística.