Intel revela processador de 8 núcleos e 528 threads com fotônica de silício
(servethehome.com)- Revelado na Hot Chips 2023, este chip de pesquisa mira o processamento de dados ultrassparsos do DARPA HIVE, oferecendo um total de 528 threads de hardware em 8 núcleos
- A análise de workload mostrou grande paralelismo, mas baixo aproveitamento de linhas de cache e baixa eficiência de pipelines longos out-of-order, exigindo um projeto diferente de uma CPU de servidor comum
- O processador é baseado em ISA RISC, e não em x86, com 66 threads por núcleo e pipeline multithread para lidar com paralelismo em larga escala
- A comunicação entre chips é conectada por uma malha óptica direta mesh-to-mesh baseada em fotônica de silício, permitindo comunicação direta até com núcleos fora do chassi sem switch nem NIC
- A implementação é uma CPU de 8 núcleos 75W em TSMC 7nm e, como mais da metade da energia é usada nas conexões ópticas, continua sendo um projeto experimental ainda em estágio de laboratório
CPU de 528 threads voltada ao DARPA HIVE
- Na Hot Chips 2023, a Intel exibiu, separadamente de chips de servidor convencionais, a tecnologia direct mesh-to-mesh optical fabric
- O objetivo central do projeto é o processamento de dados ultrassparsos exigido pelo programa DARPA HIVE
- O profiling de workloads da Intel mostrou características que não se encaixavam em projetos de CPU convencionais
- Existe paralelismo em larga escala
- Baixo aproveitamento de linhas de cache
- Estruturas longas de pipeline out-of-order não são plenamente aproveitadas
- Em resposta, o processador foi projetado com uma configuração de socket de 8 núcleos
- 66 threads de hardware por núcleo
- 528 threads no total
- ISA RISC em vez de x86
- Cada núcleo usa um pipeline multithread
Conexão direta entre chips com fotônica de silício
- Este chip usa uma configuração que coloca 16 sockets em uma única OCP compute tray e os interliga com rede óptica
- Um chip de I/O de alta velocidade faz a ponte entre sinais elétricos e funções ópticas
- Na rede on-die, há roteadores posicionados, e metade dos 16 roteadores tem a função de fornecer mais largura de banda ao I/O de alta velocidade
- Na camada física de interconexão dentro do pacote, é usado EMIB
- Nas conexões off-die, cada chip aciona a rede óptica por meio de fotônica de silício
- As conexões entre núcleos podem ser feitas diretamente entre chips
- É possível conectar mesmo fora do mesmo chassi, sem switch nem NIC
- O chip completo é composto como um pacote multichip baseado em EMIB
- A inclusão do motor de fotônica de silício trouxe desafios adicionais na parte que liga o pacote aos fios de fibra óptica
- Em termos de energia, trata-se de uma implementação de CPU de 8 núcleos 75W, e mais da metade da energia é consumida pela fotônica de silício
- Fotos reais do die confirmaram o uso do processo TSMC 7nm, e o trabalho segue em andamento no laboratório
- A parte de conexão óptica contou com ajuda da Ayar Labs
- O conector plugável que a Intel havia mostrado na Innovation 2022 não foi usado nesta implementação
1 comentários
Opiniões do Hacker News
Com 66 threads por núcleo, isso parece mais próximo de um processador barrel do que qualquer outra coisa.
É difícil esperar que cada thread seja rápida, mas, se houver trabalho suficiente para o processador, dá para considerar que ele poderá fazer trabalho útil na maior parte do tempo, em vez de ficar esperando pela memória.
A principal fraqueza dos processadores barrel está no lado humano. Pouquíssimas pessoas sabem projetar código que extraia bem seu potencial. Código comum até roda de forma razoável, então, no nível do código, ele parece familiar, mas o desempenho só aparece se você escrever de uma forma que parece muito estranha para quem só programou para CPU.
É uma arquitetura peculiar para projetar estruturas de dados e algoritmos, e também não há muita literatura sobre projeto de algoritmos para processadores barrel.
Já projetei código para várias arquiteturas de processadores barrel desde os antigos sistemas Tera e fiquei bastante bom nisso; na minha opinião, quando usado por quem realmente entende, em computação de uso geral com um orçamento de silício semelhante ele pode ter eficiência computacional maior do que quase qualquer arquitetura.
Porém, para escrever código eficiente, é preciso manter na cabeça um modelo muito mais complexo do que o código equivalente para CPU. A economia favorece arquiteturas como CPUs, em que até um engenheiro médio consegue obter uma eficiência razoável.
Apesar das vantagens em eficiência computacional pura, já desisti de esperar ver um processador barrel mainstream.
Essa parte do núcleo é muito parecida com uma GPU tradicional.
O que é diferente nesta CPU experimental da Intel é que, além da parte parecida com GPU, cada núcleo também inclui 2 threads muito rápidas. Essas duas fazem execução fora de ordem, operam em um clock muito mais alto que as threads lentas e cada uma tem unidades de execução não compartilhadas.
As 2 threads rápidas e as 64 threads lentas, vistas separadamente, lembram CPUs ou GPUs antigas, mas a novidade é combiná-las em um único núcleo com memória scratchpad e cache compartilhados.
https://citeseerx.ist.psu.edu/document?repid=rep1&type=pdf&d...
Aposto que o projeto da DARPA que financiou esta pesquisa vem da mesma linhagem de interesse daquela sigla de três letras que fez a Tera receber dinheiro suficiente para comprar a Cray.
Se trocar "esperar pela memória" por "esperar por entrada/saída", o quadro é quase o mesmo.
Enquanto ocorre uma busca lenta, o sistema pode executar mais instruções de outras threads em paralelo.
A Marvell fez uma CPU ARM SMT8 que destacava 768 Threads Per Node.
https://www.servethehome.com/marvell-thunderx3-arm-server-cp...
Pelo que me lembro, ela mirava cargas de trabalho de banco de dados, e a lógica central era a mesma: se o núcleo normalmente fica ocioso esperando a RAM, então processe outra thread nesse meio-tempo.
IBM e Zen4C atendem a essa demanda em certa medida, mas seria bom ver mais instâncias de nuvem SMT16 voltadas explicitamente para essas cargas de trabalho com baixa taxa de processamento de instruções.
Em projetos desse tipo, no estilo processador barrel, CMT8/SMT8 parece ser um ponto adequado.
Parece uma proposta de que, se for possível amortizar o custo em área de die e a perda de velocidade de converter sinais elétricos em sinais ópticos, interconexões ópticas podem oferecer velocidade praticamente independente da distância com boa eficiência.
Claro que não é totalmente assim, mas, se limitar às distâncias entre carriers de chips dentro de um único chassi, há pouca interferência e o cabeamento também fica livre dentro do raio de curvatura dos guias ópticos.
Posso ter lido errado. Os componentes ópticos podem ter outra finalidade, como empilhamento de dies, ou a ideia pode ser criar uma grade de chips sobre um supercarrier e conectá-los por interconexões ópticas.
Fotos reais do die e a confirmação de que foi fabricado no 7 nm da TSMC: para a Intel, isso deve ser uma cena bem dolorosa
Se for preciso usar a fab de uma concorrente para algo assim, deve ser um momento bem baixo para uma fabricante de chips
Mas o nó de 10 nm foi um desastre para a Intel e deixou a empresa algo como 5 a 10 anos para trás no negócio de fabricação de chips
Para um projeto de pesquisa, é fácil imaginar a preferência pela TSMC
Isso explica por que essas coisas estranhas vão para a TSMC. Por exemplo, a própria Silicon Photonics está sendo conduzida em Albuquerque, que era um site em decadência
Se você pesquisar no Google restringindo o período a 2001–2010, dá para encontrar notícias relacionadas
Deve haver algum motivo para os usuários do HN não conhecerem bem semicondutores. Provavelmente porque o público é majoritariamente de software. Neste site, parece ser a área com a maior relação entre confiança e qualidade da explicação
A AMD fez a mesma coisa quando abandonou a GlobalFoundries, e dá para dizer que esse foi o principal motivo de ela ter passado à frente da Intel
No fim, todos usam equipamentos de litografia da ASML, então quem coloca o wafer na máquina é algo relativamente secundário
Isto parece mais uma CPU de prova de conceito do que um produto vendável
É extremamente especializada, e ainda estão na etapa de descobrir quais problemas e cargas de trabalho ela vai resolver
Espero que fótons também sejam introduzidos na computação de uso geral no futuro. Nem que seja para lidar com o problema crescente de calor excedente. O que chama atenção em particular é a mudança de processo de 10 nm para 7 nm
A Sun também fez algo parecido há muito tempo, mas depois abandonou isso nas CPUs UltraSPARC
Será que as threads ficavam famintas? Será que decidiram que era melhor reduzir o número de núcleos e torná-los mais rápidos? É difícil encontrar detalhes
Seria bom se o bcantrill do HN contasse os bastidores
Muitas vezes, para obter desempenho, era preciso ajustar muito mais parâmetros ou recompilar
Para mim, isso também coincidiu com uma época em que a necessidade de usar SSL aumentou bastante; SSL era bem otimizado para x86, mas não para Sparc. Então era preciso lidar com complexidades como placas de offload de SSL ou proxies reversos
No fim, fora alguns nichos, era difícil demais fazê-lo funcionar bem
Talvez não tenha sido um fator grande, mas também era incômodo para administradores de sistemas. Muitas das tarefas que precisávamos fazer eram seriais e centradas em um único núcleo. Ou seja, ele mostrava seu pior lado justamente para o grupo que normalmente aprova compras de fornecedores
Isto parece perfeito para redução de grafos e programação de fluxo de dados
Se entrar em produção de verdade, acho que daria para construir coisas bem legais com isso
528 threads em 8 núcleos? Como essa conta fecha? Achei que fosse 512 e tive que reler
Pelo tipo de carga de trabalho, parece que o cache não é muito bem aproveitado, e isto não é x86, mas um conjunto de instruções RISC
Aqui, 2 é o número de threads lentas como nas CPUs atuais, e 64 é mais próximo de threads de GPU
Esta arquitetura pode ser o próximo passo da integração de GPU. Espero que consigam escrever implementações eficientes das bibliotecas matemáticas padrão. Pode ser mais rápida do que uma CPU+GPU separadas dentro do mesmo pacote
Não é explicado por que são 66
Agora é hora de terminar de reescrever todo o código como orientado a eventos, com io_uring e afins
O Tera MTA que outras pessoas mencionaram tinha, ou tem, sincronização em hardware no sistema de memória para isso
Não havia interrupções; apenas threads esperando alguém acordá-las
Será que li o artigo direito? Quer dizer que há 32 GB de DRAM no chip, ou ele simplesmente usa DIMMs padrão?
O interessante é que usa DIMMs e controlador de memória customizados para acesso em unidades de 8 bytes. Além disso, como dá para ver na foto do die, cada núcleo tem seu próprio controlador de memória
Se cada controlador de memória gerencia 4 GB de DRAM, isso explica os 32 GB por chip
Há materiais que explicam em mais detalhes, a Nvidia também parece fazer isso no Grace Hopper, e a Apple faz algo parecido nos chips da série M
Atualização: neste caso, parece ser apenas DDR5, mais precisamente "custom DDR5-4400 DRAM"