Retrospectiva 2023. Inovação em Verificação - Semiwiki

Retrospectiva 2023. Inovação em Verificação – Semiwiki

Nó Fonte: 3086907

Como de costume, em janeiro começamos com uma retrospectiva dos artigos que analisamos no ano passado. Paul Cunningham (GM, Verification at Cadence), Raúl Camposano (Silicon Catalyst, empresário, ex-CTO da Synopsys e agora CTO da Silvaco) e eu continuamos nossa série sobre ideias de pesquisa. Como sempre, feedback é bem-vindo. Estamos planejando iniciar uma série ao vivo este ano para debater ideias e tópicos mais amplos e para obter seu feedback. Detalhes para seguir!

Retrospectiva 2023

As escolhas de 2023

Estes são os blogs que postamos ao longo do ano, classificados por popularidade. Tivemos uma média de 12.7 mil engajamentos por blog, um aumento significativo em relação ao ano passado, que consideramos uma indicação de que você continua gostando de nossas análises de pesquisas atuais em verificação. O líder não foi nenhuma surpresa, aplicando LLMs à revisão automatizada de código em quase 17 mil compromissos. Em segundo lugar, usa ML para desenvolver abstrações de modelos. Na verdade, os 4 principais blogs em 2023 eram todos sobre aplicações de IA/ML. As redes de Petri apareceram novamente este ano, aqui para validar protocolos DRAM em rápida evolução. O uso de hardware dedicado para especulação em simulação e um método para encontrar anomalias completam a lista. A retrospectiva para 2022 teve um desempenho tão bom quanto o normal, mas foi ofuscada pelo interesse em outros artigos ao longo do ano. É seguro apostar que veremos mais aplicações de IA/ML em 2024!

Visão de Paul

Mais um ano voa e 49 artigos lidos desde que iniciamos o blog em novembro de 2019! Naquela época, pensávamos que seria uma ótima maneira de reunir nossa comunidade de verificação e mostrar nosso apreço pelo investimento contínuo em pesquisas de verificação em instituições acadêmicas de todo o mundo.

O que não previ foi como a leitura de todos esses artigos inspiraria novos investimentos e inovações na Cadence. Escrever este blog me ensinou que, mesmo em nível executivo em engenharia, permanecer conectado à pesquisa básica e ler artigos regularmente é bom para os negócios. Então, obrigado leitores, e obrigado Bernard!

Não é nenhuma surpresa que nossos três principais sucessos no ano passado foram todos artigos sobre o uso de IA na verificação, um sobre IA para automatizar a revisão de código (link), um em IA para ajudar a encontrar bugs mais rapidamente em modelos SimuLink de alto nível de dispositivos de sinais mistos (link) e um sobre o uso de IA para identificar automaticamente qual linha de código-fonte é a causa raiz de uma falha no teste (link). É absolutamente necessário continuar a investir na investigação aqui, tanto no meio académico como no mundo comercial. De alguma forma, durante a próxima década, precisaremos encontrar nosso próximo 10x em produtividade de verificação, e é mais provável que isso venha da IA.

Dito isso, minha mensagem pessoal de 2024 não está relacionada à IA. É para dois artigos em simulação lógica: um sobre paralelização de simulação usando execução especulativa da fila de eventos (link), e outro sobre como melhorar a qualidade da distribuição de entradas aleatórias em testes aleatórios restritos usando funções de hash inteligentes (link). Eu chamo essas inovações de “nível de mecanismo” – tornando os blocos de construção dentro das ferramentas de EDA fundamentalmente melhores. Também precisamos de continuar a investigação e a inovação neste domínio. Esses dois artigos foram muito inovadores, mas não tinham nada a ver com IA. Não nos esqueçamos de continuar investindo também em inovações não relacionadas à IA.

Visão de Raúl

Escrever esta retrospectiva durante as férias esbarra inevitavelmente numa das necessidades da humanidade que pode ser elevada a uma arte: comer. A avaliação de restaurantes talvez compartilhe o suficiente com a revisão de artigos para justificar classificações como ★★★ excepcional, que vale uma viagem especial, ★★ excelente, que vale um desvio, ★ alta qualidade, que vale uma parada e 😋 excepcionalmente bom a preços moderados. Paulo já afirmou que nosso Revisão de setembro era um "Tópico estrela Michelin”. Continuarei nesse sentido, usando como critério suas preferências (número de visualizações), queridos leitores.

Embora o blog do ano passado tenha sido principalmente sobre algoritmos interessantes, o deste ano foi sobre AI / ML e Software (SW). Os três principais artigos ★★★ eram todos sobre verificação de SW usando IA/ML. O blog mais bem avaliado (Julho) era sobre revisão de código com IA generativa, o segundo (Novembro) tratou de testar e verificar SW para sistemas ciber-físicos usando modelos substitutos de IA, e o terceiro (Maio) tratava de detectar e corrigir bugs no aumento de Java com classificadores de IA. Dois desses três artigos usam grandes conjuntos de dados do GitHub para treinamento. Esses dados não estão disponíveis publicamente para projetos de hardware (HW); o que é indiscutivelmente diferente o suficiente do SW para pelo menos levantar a questão se esses resultados podem/serão replicados para o HW. No entanto, observar o que a comunidade SW está fazendo em relação à verificação é certamente uma fonte de inspiração.

Os próximos três artigos, classificados com ★★, são uma coleção eclética de IA/ML, um algoritmo muito interessante e redes de Petri. Todos lidam com verificação em EDA. setembro de O artigo foi uma prévia do uso de um LLM (GPT-4) e um verificador de modelo (JasperGold) para traduzir o inglês para System Verilog Assertions (SVA). O proximo (Junho) abordou como amostrar o espaço de solução para verificação aleatória restrita uniformemente (atender às restrições) – um algoritmo interessante para um problema difícil, de 2014. A última contribuição neste grupo (Abril) ampliaram as Redes de Petri para a verificação das especificações DDR JEDEC; é educativo tanto nas especificações JEDEC quanto nas redes de Petri e revela uma violação de tempo.

Os artigos 7 a 9, classificados com ★, tratam da verificação de projeto analógico, verificação de CPU e execução paralela de SW. Em Outubro revisamos um artigo convidado para o jornal aberto IEEE da Solid-State Circuits Society, além de ser um bom tutorial sobre projeto e validação analógicos, a principal contribuição consiste na substituição de modelos de circuitos analógicos por modelos funcionais para acelerar a simulação do Spice em 4 ordens de grandeza . jornal de fevereiro tratava de usar DNNs para melhorar geradores de instruções aleatórias na verificação de CPU, mostrando uma redução de “o número de simulações por um fator de 2 ou mais”em um exemplo simples (IBM Northstar, 5 instruções). Março nos trouxe o projeto completo de um acelerador HW para implementar o Modelo de execução de Tarefas Ordenadas Espacialmente Localizadas (SLOT) para explorar o paralelismo e a especulação, e para aplicações que geram tarefas dinamicamente em tempo de execução.

O que nos deixa com dois 😋 destinatários. Em Agosto revisamos um artigo de 2013 que foi pioneiro no agrupamento k-means (2013) para detecção de bugs pós-silício. E em Dezembro abordamos um tópico muito importante, a verificação de segurança usando IFT (Information Flow Tracking) e sua extensão do nível do portão até o RTL. Não é de surpreender que a contribuição de dezembro tenha sido a que teve menos acessos, já que nossos leitores provavelmente estavam enfrentando o dilema descrito inicialmente.

As classificações às vezes podem ser arbitrárias, todas essas contribuições são dignas de estrelas e avançam no estado da arte. Podemos estar gratos por uma comunidade de investigação activa e internacional no meio académico e na indústria que aborda problemas realmente difíceis. Pelas minhas preferências pessoais, você pode adivinhar…

Compartilhe esta postagem via:

Carimbo de hora:

Mais de Semiwiki