Publicidade
Economize: canal oficial do CT Ofertas no WhatsApp Entrar

Descoberta pode dobrar desempenho de PCs

Por| Editado por Jones Oliveira | 15 de Março de 2024 às 07h55

Link copiado!

Intel
Intel

Pesquisadores da Universidade de da California desenvolveram uma nova estrutura de processamento de dados capaz de utilizar de forma mais eficiente os recursos de CPUs com múltiplos núcleos e threads. Os testes preliminares do processo batizado de Multithreading Simultâneo e Heterogêneo (SHMT) são promissores, quase dobrando o desempenho de CPUs e reduzindo seu consumo pela metade.

Apesar de os PCs modernos serem heterogêneos em termos de estruturas físicas, com CPU, GPUs, coprocessadores e, agora, NPUs, as linguagens de programação ainda são tecnicamente homogêneas. O novo framework é praticamente uma evolução do pipelining, ao permitir que sub-rotinas menores sejam executadas em paralelo de forma oportunista em threads e aceleradores ociosos, otimizando desempenho e consumo. 

Continua após a publicidade

Desbloqueando o potencial da computação heterogênea

Mesmo com o paralelismo parcial do pipelining, as instruções são realizadas de forma relativamente linear, com cada thread executando todo um conjunto, e novos threads sendo acionados apenas conforme solicitados pelo código original. Isto ocorre porque os modelos de programação “entrincheirados” atuais, delimitam quais as unidades de processamento mais eficientes para cada região do código.

No entanto, operar dessa forma naturalmente deixa muitos núcleos e threads liberados, subutilizando recursos do sistema. Na prática, uma das vantagens iniciais das NPUs já é otimizar um pouco essa questão por meio do aprendizado de máquina, mas efetivamente, a estrutura de processamento continua sendo linear, apenas com uma alocação mais “inteligente”.

Continua após a publicidade

A proposta do SHMT é programar em modelos menos engessados, possibilitando que o código seja segmentado com o máximo de partes possíveis sendo processadas em paralelo. De forma bastante rasa, seria o equivalente e rodar e armazenar os resultados de partes diferentes de um jogo ao mesmo tempo, e apenas ir registrando os resultados conforme eles são solicitados.

Evidentemente, no exemplo específico de um programa interativo, como um jogo, isso não parece muito viável, uma vez que as variáveis são inseridas em tempo real. Contudo, em uma renderização de um código fechado como uma plotagem de um modelo 3D, treinamento de modelos LLM ,ou processamento de Big Data, desbloquear o poder da computação heterogênea pode representar um salto gigantesco no desempenho de workstations para aplicações profissionais, pesquisa e Inteligência Artificial.

Fonte: Association for Computing Machinery