Já não é possível otimizar o sistema observando hardware e software separadamente, segundo uma análise publicada por Brian Bailey, editor de tecnologia especializado em EDA da Semiconductor Engineering. As cargas de trabalho de software mudam em um ritmo mais rápido do que os ciclos de desenvolvimento de chips, enquanto energia, desempenho e calor se tornaram fatores interligados que exigem uma colaboração antecipada entre as equipes de software e hardware, em vez de a entrega do design de uma equipe para outra após o término de cada etapa.
A análise aborda o retorno do interesse pelo chamado design conjunto de hardware e software, mas em condições diferentes das que prevaleciam há cerca de 30 anos. Naquela época, as tecnologias disponíveis não eram capazes de fazer uma grande diferença, e a indústria passou a reunir blocos de IP previamente validados e integrá-los. Alguns vestígios da abordagem anterior ainda existem, como a modelagem virtual e os modelos SystemC não temporizados ou com temporização aproximada, mas essas ferramentas não são consideradas suficientes, por si só, para representar as cargas de trabalho reais atuais.
Da separação entre equipes aos modelos virtuais
Steve Roddy, diretor de marketing da Quadric, afirma que a época em que a equipe de hardware fazia seu design e depois o entregava à equipe de software embarcado terminou há mais de duas décadas. A modelagem virtual se expandiu durante a última década para incluir entradas físicas e interfaces de sensores, no que é conhecido como modelagem de gêmeo virtual.
Mas o desafio atual é mais complexo; os sistemas se tornaram muito maiores e são projetados para cargas de trabalho definidas pelo software, enquanto a iteração do software é mais rápida do que o desenvolvimento do hardware. Isso transforma o design conjunto em um processo no qual o hardware acompanha continuamente o software. Arvind Srinivasan, da Normal Computing, considera que as camadas de abstração que historicamente separaram partes da pilha de software de partes da pilha de hardware ajudaram a administrar a complexidade e a melhorar a eficiência e a confiabilidade do desenvolvimento, mas a necessidade de extrair a máxima otimização de cada parte da cadeia de ferramentas, especialmente para cargas de trabalho de inteligência artificial sensíveis ao desempenho, está mudando esse equilíbrio.
Abordar o problema exige uma compreensão mais ampla da palavra “arquitetura”. Ela não se refere apenas à estrutura geral do sistema ou à microarquitetura e ao conjunto de instruções, mas também inclui a arquitetura do software e a carga que será efetivamente executada. Andy Meier, da Siemens EDA, afirma que a escolha da arquitetura deve partir da aplicação ou da carga de trabalho e da maneira como essa carga afeta a estrutura do sistema, as instruções e os diferentes elementos internos.
A onda da especialização retorna impulsionada pela energia
A análise baseia-se na observação de Tsugio Makimoto, que ocupou o cargo de diretor de tecnologia da Sony durante a década de 1990, sobre o movimento da indústria em ondas entre especialização e generalização. Depois de um período em que os processadores de uso geral dominaram amplos setores, as exigências de computação na borda e, posteriormente, nos centros de dados começaram a impulsionar soluções mais especializadas.
Nos dispositivos de borda, o impulso está relacionado ao prolongamento da vida útil da bateria dentro dos limites de energia disponíveis. Nos centros de dados, a densidade de energia e o calor passaram a limitar as opções para executar cargas de trabalho de inteligência artificial. Como resultado, as unidades de processamento de uso geral, sozinhas, já não são a resposta; surgiu a necessidade de centros de dados heterogêneos que incluam vários tipos de chips, com as cargas distribuídas ou agrupadas de acordo com as características de cada chip.
Patrick Coles, cientista-chefe da Normal Computing, observa que as unidades de processamento gráfico podem não representar o fim da evolução da computação, à medida que aumentam as evidências da expansão do papel dos ASICs. Frank Schirrmeister, da Synopsys, também explica que empresas de computação em hiperescala desenvolvem chips e aceleradores próprios para obter uma otimização conjunta de indicadores-chave de desempenho, como desempenho e consumo de energia, em vez de se concentrarem apenas na velocidade.
No entanto, a especialização não é apenas uma decisão técnica. É necessário determinar quanto de personalização justifica seu custo econômico e se ela oferecerá ganhos suficientes de desempenho e energia. Purna Mohanty, CEO da SignatureIP, observa que a complexidade das especificações pode fazer com que o próprio cliente seja incapaz de expressar com precisão o que deseja, o que exige um alinhamento contínuo entre o fornecedor de IP e as necessidades dos clientes, equilibrando as vantagens das soluções prontas e os ganhos do desenvolvimento de novas características.
RISC-V como exemplo de especialização vinculada à carga de trabalho
O RISC-V destaca-se na análise como exemplo da tendência em direção aos “chips projetados para a carga de trabalho”. As empresas desenvolvem extensões personalizadas para os núcleos com o objetivo de melhorar o desempenho ou a energia, mas essas extensões também exigem partes do ecossistema, como compiladores e ferramentas de integração de software.
Andrea Gallo, CEO da RISC-V International, explica que o uso de instruções personalizadas transfere para a empresa todo o custo de propriedade, incluindo a cadeia de ferramentas e a integração de software. Essa abordagem pode ser uma maneira rápida de inovar, mas a empresa pode posteriormente buscar transformar a extensão em um padrão, distribuindo seu custo de manutenção pelo ecossistema mais amplo. A análise também indica que conhecer previamente a carga de trabalho do software permite adaptar os elementos de processamento à aplicação, enquanto os mecanismos de computação de uso geral e escaláveis continuam importantes para executar software desconhecido ou mutável.
Energia e calor ampliam o escopo do design conjunto
O impacto do design conjunto não se limita ao desempenho. Os engenheiros de software podem compreender a importância da energia, mas nem sempre dispõem das ferramentas que lhes permitam medir antecipadamente o impacto de suas decisões. Por isso, as equipes trabalham para disponibilizar números de consumo de energia durante o desenvolvimento do software em paralelo ao hardware e para melhorar indicadores como TOPS por watt, e não apenas o TOPS bruto.
A dificuldade aumenta em aplicações heterogêneas que incluem vários níveis de memória cache, além de outras funções, como o teste incorporado ao design, DFT, pois a energia e o desempenho devem ser analisados em uma carga realista que também inclua essas funções. À medida que a análise passa a abranger calor, interferência eletromagnética e aspectos multifísicos, a união das equipes de hardware e software se torna uma nova unidade à qual se acrescentam análises multifísicas.
Alguns participantes da análise levantam a possibilidade de usar inteligência artificial para compreender as relações complexas entre hardware, software, energia e desempenho. Mas isso exige dados que descrevam quanta energia o software consumiu em diferentes níveis, do chip e do servidor ao rack, ao veículo e ao centro de dados. Até que estejam disponíveis soluções maduras conduzidas por inteligência artificial, a dependência da integração de IPs e da escolha de diferentes graus de especialização pode continuar.
A discussão sobre extensões de matrizes no RISC-V mostra que uma única solução não é adequada a todos os usos: uma extensão pequena pode reduzir a energia, enquanto um conjunto maior de registradores, operações e acumuladores oferece maior produtividade, mas ao custo de área do die e consumo de energia. A escolha depende, em última análise, da maneira como os núcleos, aceleradores e a carga de trabalho-alvo são distribuídos. A análise conclui que o caminho rumo à integração vertical ainda está longe de ser concluído, mas se tornou uma direção necessária para alinhar o design ao software, à energia e ao desempenho nos sistemas modernos.