À medida que aumenta o número de componentes que compartilham dados dentro dos chips de inteligência artificial, o gerenciamento desses dados deixou de ser uma responsabilidade exclusivamente de software. Quando uma unidade de aceleração de dados grava na memória e depois uma unidade de processamento central lê esses dados, ou quando os componentes trocam informações de controle compartilhadas, o software precisa saber qual cópia dos dados é a mais recente. O artigo explica que transferir uma parcela maior dessa tarefa para o hardware, usando a coerência de memória, pode reduzir a complexidade do software, os erros de coordenação e a dificuldade de desenvolver os sistemas.
O artigo foi publicado no formato de blog patrocinado pela Semiconductor Engineering e escrito por Ashley Stevens, diretor de gerenciamento de produtos e marketing da Arteris, responsável pelas redes de interconexão coerentes e pelas comunicações entre chiplets. Por isso, apresenta uma explicação técnica útil, mas também inclui uma exposição das capacidades dos produtos da Arteris, algo que deve ser levado em consideração ao avaliar a proposta.
Das cópias separadas à memória compartilhada
Nos sistemas mais antigos, era possível manter o processador e o acelerador relativamente separados. O processador se comunicava com o acelerador por meio do PCIe, copiava os dados para a memória do acelerador, enviava uma mensagem e aguardava os resultados. Esse modelo era prático quando as unidades trabalhavam de forma mais independente, mas se torna mais complexo com o aumento do volume de dados compartilhados e do número de etapas de processamento.
O problema aparece com mais clareza nos sistemas de inteligência artificial de borda, nos quais o sistema pode integrar um processador geral e um acelerador de inteligência artificial em um único SoC, ou conectá-los em um projeto baseado em múltiplos chiplets. Nesse caso, os dados passam por várias etapas antes de o resultado chegar à aplicação, enquanto as informações de coordenação e controle precisam estar disponíveis na versão correta para os componentes envolvidos.
A coerência de memória é uma tecnologia no nível do chip que mantém uma visão unificada dos dados compartilhados, estejam eles na memória principal ou na memória cache. Em vez de o software acompanhar as modificações e garantir a atualização das cópias, o sistema de interconexão coerente e o sistema de memória assumem parte dessa tarefa.
O que muda na prática?
O principal resultado não é eliminar todas as operações de cópia nem tornar todas as comunicações coerentes, mas reduzir a quantidade de lógica de software necessária para coordenar o trabalho de unidades heterogêneas. Quando o hardware gerencia o estado dos dados compartilhados, o software pode se concentrar mais na lógica da aplicação e no agendamento do trabalho, em vez de acompanhar se cada componente está lendo uma cópia antiga ou atualizada.
Essa mudança pode tornar o software mais simples e fácil de desenvolver, além de reduzir erros difíceis de detectar durante a execução. O artigo relaciona essa abordagem à velocidade de desenvolvimento e à confiabilidade do software, mas não apresenta números para medir a magnitude da melhoria no desempenho ou no tempo de desenvolvimento. Portanto, os benefícios quantitativos não podem ser considerados confirmados apenas pelo texto.
Coerência onde ela é necessária
O artigo não considera que aplicar coerência a todo movimento de dados seja o melhor projeto. Fluxos de alta largura de banda nem sempre precisam de coerência de memória, enquanto as informações que coordenam a operação do sistema entre as unidades de processamento precisam desse mecanismo. Por isso, segundo a proposta apresentada, a maioria dos chips de inteligência artificial utiliza uma combinação de redes de interconexão coerentes e não coerentes.
As redes coerentes são usadas quando várias unidades de processamento compartilham os mesmos dados ou estado, enquanto as redes não coerentes podem transportar dados que não precisam de uma visão compartilhada. Essa divisão dá aos projetistas a oportunidade de otimizar as demais comunicações de acordo com os requisitos de largura de banda, latência e consumo de energia, em vez de impor o custo da coerência a todos os caminhos.
A importância do projeto com múltiplos chiplets
A ideia se estende aos sistemas com múltiplos chiplets, nos quais o chip maior é dividido em vários chiplets que trocam informações. O artigo afirma que manter a coerência entre esses chiplets pode ajudar a expandir sistemas heterogêneos sem devolver inteiramente ao software a responsabilidade pela coordenação dos dados compartilhados.
A Arteris menciona três componentes de seu portfólio nesse contexto: o FlexNoC, para comunicações não coerentes; o FlexGen, para automatizar o projeto de redes NoC de alto desempenho em chips avançados e sistemas com múltiplos chiplets; e o Ncore, para fornecer uma malha de interconexão coerente. Essas referências explicam a posição da tecnologia entre os produtos da empresa, mas não representam um novo anúncio de lançamento nem uma comparação independente entre as soluções disponíveis no mercado.
Por que essa notícia é importante?
O principal valor arquitetural da proposta é que aumentar o número de transistores dedicados a simplificar o software já não é necessariamente considerado desperdício. À medida que os sistemas de inteligência artificial migram para projetos que combinam processadores gerais, aceleradores e chips com múltiplos chiplets, a distribuição de responsabilidades entre hardware e software se torna uma decisão que afeta a escalabilidade e a facilidade de desenvolvimento.
Mas a questão prática continua sendo quanto hardware adicional vale a pena dedicar à coerência e onde ela deve ser interrompida para evitar custos desnecessários de área, energia, projeto e verificação. O artigo apresenta o princípio de distinguir entre dados compartilhados e não compartilhados, mas não define critérios quantitativos para tomar essa decisão nem apresenta resultados de testes ou um caso de uso documentado que compare uma abordagem coerente com outra que dependa de maior gerenciamento por software.