Conheça o KiloCore, o início de uma nova era da computação

Por Pedro Cipoli | 29.06.2016 às 00:11 - atualizado em 29.06.2016 às 09:50

A notícia é bastante simples, ainda que impressionante: pesquisadores da Universidade da Califórnia-Davis criaram o KiloCore, um processador com 1.000 núcleos. Sim, 1.000, número que não chega a ser tão grande se comparado às placas de vídeo, já que algumas delas trazem mais de 4000 processadores de fluxo, mas é certamente impressionante se comparado aos processadores comuns. O Core i7-6950X, por exemplo, conta com "somente" 10 núcleos (e 20 threads), e mesmo qualquer processador de alto desempenho para servidores raramente passa de 24 núcleos, tanto da Intel quanto da AMD.

Naturalmente, a comparação não é tão direta assim, já que o Core i7-6950X certamente supera o KiloCore em qualquer aplicação, mas não esse o nosso foco aqui.

KiloCore vs CPUs comuns

Usar o Core i7-6950X como exemplo chega a ser um exagero, já que ele é o modelo mais potente voltado para o mercado consumer da atualidade (na data de produção deste artigo, vale lembrar). Porém, é bastante seguro assumir que um processador de desktop típico razoavelmente potente tem TDPs que variam entre 80 e 100 watts (o Core i7-6950X trabalha com 140 watts em sua configuração básica), geralmente com modelos com 4 ou 8 núcleos tanto no caso da Intel quanto da AMD.

A estratégia de ambas é oferecer a melhor eficiência single-core possível. Esse é um dos principais motivos de CPUs trazerem poucos núcleos, enquanto GPUs trazem milhares. É a diferença entre um core de propósito geral contra um exército de cores altamente especializados. Se a comparação fosse uma classe de matemática, o professor seria a CPU, capaz de realizar operações altamente complexas uma atrás da outra, enquanto 40 alunos conseguem resolver uma equação de Bhaskara simultaneamente. Enquanto um consegue processar tarefas complexas de forma serial, outro processa tarefas mais simples de forma paralelizada.

KiloCore

KiloCore: tão pequeno e tão grande.

É aqui que entra o KiloCore, com seus 1.000 núcleos de processamento independente rodando a 1,78 GHz. O consumo de energia? Mero 0,7 watt no total, baixo o suficiente para funcionar com apenas uma pilha comum tipo AA. Seus 621 milhões de transistores são capazes de executar até 115 bilhões de instruções por segundo (máximo de 1,78 trilhões), sendo um dos processadores com a relação desempenho/consumo de energia mais eficiente já registrada, isso mesmo sendo fabricado em um processo de 32 nanômetros da IBM, enquanto CPUs mais modernas já usam uma litografia de 14 nanômetros.

Ou seja, trata-se de uma primeira geração construída em um processo já relativamente antigo, mas com um poder de processamento impressionante ao mesmo tempo em que consome 200 vezes menos energia do que uma CPU como o Core i7-6950X.

E por que isso é importante?

Atualmente, a evolução dos processadores de desktop convencionais está se aproximando dos limites físicos dos próprios componentes que os compõem. Ou mesmo econômicos, já que reduzir o processo de fabricação está se tornando algo exponencialmente mais caro, o que muitos interpretam como o fim da Lei de Moore, exigindo novas maneiras de continuar aumentando o desempenho. Ainda que empresas como a IBM já tenham mostrado resultados com litografias ainda menores, como seu chip de 7 nanômetros, trata-se do mesmo modelo de evolução.

Isso significa que novas maneiras de alcançar melhores desempenhos devem começar a aparecer provavelmente ainda nessa década, e o KiloCore representa exatamente isso. Ainda que o usuário final não se beneficie tanto da quantidade massiva de núcleos (ainda que ter 1.000 núcleos trabalhando juntos seja muito legal), a indústria certamente tem muito a ganhar. Um dos ramos mais beneficiados é, certamente, o científico.

KiloCore

Cada núcleo conta, individualmente, com poucos transistores, já que o foco é o poder combinado dos 1000 núcleos, não o seu poder de fogo individual.

Boa parte dos grandes servidores e datacentes atuais usa processadores caríssimos e placas de vídeo de altíssimo desempenho, trabalhando com quantidades massivas de dados que, por sua natureza, apresentam ganhos diretos com mais núcleos de CPU. Mesmo as CPUs criadas especificamente para isso contam com poucas dezenas de núcleos, isso contando também com as "super unidades de computação" da Intel, conhecidas como Xeon Phi, uma solução cara de alto consumo que tenta paralelizar CPUs comuns, mas perde não somente pelo paralelismo em si, mas também pela altíssima eficiência energética do KiloCore.

No lugar de um processador de 215 watts (TDP do modelo Intel Xeon Phi 7210, com 64 cores rodando a 1,3 GHz como frquência base), mais de 300 KiloCore (resultando em 300.000 núcleos) – além de não exigir um sistema de refrigeração desses servidores, já que uma TDP de apenas 0,7 watts – conseguem rodar sem qualquer cooler de resfriamento. É um caso semelhante ao que acontece com o RaspBerry Pi.

Quais aplicações? Cálculos científicos, como qualquer projeto de computação distribuída, que passa a internalizar uma boa quantidade de poder computacional. Deep Learning, que roda muito melhor em placas de vídeo exatamente pelo foco em paralelismo. Isso para mencionar somente dois exemplos, já que qualquer servidor que lida com diversas requisições simultâneas se beneficiaria disso, desde servidores de busca até sites que contam com milhões de acessos mensais.

Conclusão: esse é somente o primeiro passo

O fim da Lei de Moore, ou mesmo sua desaceração, exige novos modelos de computação para aumentar o desempenho das máquinas para "resolver" as próprias limitações físicas e econômicas da diminuição da litografia do silício. Nesse cenário, o passo mais esperado pela indústria é a computação quântica, que ainda não é acessível o suficiente para ser utilizada em larga escala, ainda que o computador de 5 qubits da IBM já tenha entrado em operação e liberado para o público.

Enquanto isso, o paralelismo parece a solução mais simples e barata para resolver esse problema. Grandes empresas fazem uso do paralelismo já há bastante tempo, mas usando para isso as GPUs, não CPUs. Um bom exemplo é o DIGITS DevBox com placas de vídeo NVIDIA, anunciado na GPU Technology Conference de 2015, que traz somente um processador Intel Core i7, mas 4 Titan X, o que resulta em 12.288 cores trabalhando simultaneamente para processar grandes quantidades de dados. Por mais poderosa que seja a CPU, ela é incapaz de oferecer os ganhos de escala das placas de vídeo.

DIGITS DevBox

Acima, a DevBox, com o foco em paralelismo com suas 4 Titan X em SLI. O sistema foi projetado para Deep Learning, rodando o Ubuntu como sistema padrão.

É exatamente por esse motivo que podemos ressaltar a importância do KiloCore, que mostra que é possível ter um nível de paralelismo tão alto quando o encontrado em GPUs na CPU. Suas características iniciais já impressionam, como a sua enorme quantidade de núcleos e baixíssimo consumo de energia, de forma que suas futuras gerações nos deixam bastante ansiosos, para dizer o mínimo. Em especial quando imaginamos usas características futuras, resultado em um aprimoramento de seu processo de produção, o que pode resultar em ainda mais núcleos, maior frequência e menor consumo de energia.

Talvez, em poucos anos, seja bastante comum termos servidores e datacenters com milhares ou mesmo milhões de KiloCores (ou seja, milhões ou mesmo bilhões de núcleos) em instalações que consomem cada vez menos energia. Do lado das empresas, os ganhos de escala e economias de custos são patentes. Para o consumidor, com o foco cada vez maior em serviços de streaming, sejam dados multimídia ou jogos, será possível contar cada vez menos com o poder computacional de nossas próprias máquinas.

Fontes: TweakTown, DailyMail, Gizmodo, PCMag