2 pontos por GN⁺ 2023-08-30 | 1 comentários | Compartilhar no WhatsApp
  • 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

 
GN⁺ 2023-08-30
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.

    • Não sei se a Intel tem disposição para tentar mais um processador barrel.
      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.
    • Das 66, 64 threads são threads lentas, e cada grupo de 16 threads compartilha um conjunto de unidades de execução; todas as 64 compartilham a memória scratchpad e o cache.
      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.
    • Isso me lembra o Tera, o multithreading simultâneo original. Em 1990, eram 128 threads por núcleo.
      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.
    • Também soa um pouco parecido com o processamento assíncrono em linguagens de programação.
      Se trocar "esperar pela memória" por "esperar por entrada/saída", o quadro é quase o mesmo.
    • Eu não veria isso necessariamente como um processador barrel. Pode ser mais um aumento no número de multithreading simultâneo, já que o desempenho da CPU cresceu em relação à CPU e à largura de banda de memória.
      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.

    • Niagara, ou seja, UltraSPARC T1/T2, também fazia a mesma coisa.
      Em projetos desse tipo, no estilo processador barrel, CMT8/SMT8 parece ser um ponto adequado.
    • É a primeira vez que vejo alguém escrever ou dizer "mind as well". É uma expressão comum na sua região? Até agora eu só tinha ouvido "might as well".
  • 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.

    • Só o fato de espaçar os núcleos já ajuda muito na dissipação de calor.
    • Em 1997, quando eu estava lá, já existiam voxels. O objetivo era empilhar camadas e usar voxels dentro de uma pilha vertical.
  • 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

    • A Intel tem um nó protótipo de 1,8 nm que a Nvidia já testou e elogiou
      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
    • O processo da TSMC é mais fácil de usar, e há ao redor dele um ecossistema de IP bem estabelecido que não existe nos processos internos da Intel
      Para um projeto de pesquisa, é fácil imaginar a preferência pela TSMC
    • Nas fabs da Intel, quase tudo que não é CPU lógica é tratado como cidadão de segunda classe
      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
    • A Intel provavelmente usa a TSMC para processadores que não são de PC há uns 15 anos
      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 Nvidia e a AMD já fecharam contratos para usar os serviços de fundição em escala de ångström da Intel, então não é algo inimaginável
      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

    • Usei esse sistema no auge. Em algumas cargas de trabalho ele era excelente, mas qualquer coisa que exigisse desempenho de núcleo único sofria
      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

    • Segundo o artigo, a Intel tem um processador com 8 núcleos por soquete e 66 threads por núcleo. Somando, são 528 threads
      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
    • Simples. 528 = 8 * (2 + 64)
      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
    • Significa "um processador de 8 núcleos com 66 threads por núcleo". 66*8 = 528
      Não é explicado por que são 66
    • 66 por núcleo parece meio estranho. Talvez 2 sejam para roteamento ou metadados
  • Agora é hora de terminar de reescrever todo o código como orientado a eventos, com io_uring e afins

    • Em arquiteturas assim, em geral dá mais resultado deixar a assincronicidade a cargo do hardware
      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?

    • Não é on-chip; ainda é DDR5 DIMM
      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
    • [Correção: acho que eu estava errado!] Eu tinha quase certeza de que era HBM na mesma placa, ou seja, memória de alta largura de banda: https://en.wikipedia.org/wiki/High_Bandwidth_Memory
      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"
    • DDR5 comum