HĂĄ menos de dois anos, exploramos o primeiro servidor Arm SoC, que teoricamente poderia competir com o Intel Xeon E5s - Cavium ThunderX. O servidor SoC demonstrou tudo o que foi anunciado, no entanto, devido ao baixo desempenho de thread Ășnico e dificuldades em otimizar as caracterĂsticas de energia, o SoC de 48 nĂșcleos foi atribuĂdo a nichos de mercado. Como resultado, o primeiro servidor Cavium SoC nunca foi capaz de competir com o Xeon da Intel.

Mas a Cavium nĂŁo desistiu por razĂ”es Ăłbvias: no momento, o mercado de servidores se tornou mais atraente do que nunca. Os datacenters da gigante global Intel faturam cerca de 20 bilhĂ”es de dĂłlares (!) Por ano. AlĂ©m disso, a rentabilidade Ă© de 50%. Em termos de lucro e rotatividade, o mercado de servidores Ă© muitas vezes maior do que qualquer outro mercado de equipamentos. Portanto, apĂłs o lançamento do ThunderX, a Cavium prometeu lançar uma segunda iteração: gerenciamento de energia aprimorado, desempenho aprimorado de thread Ășnico e ainda mais nĂșcleos (54).
O que nĂŁo interessa Ă s mĂŁos da Cavium Ă© que, se o usuĂĄrio precisar de um servidor, ele poderĂĄ usar uma mĂĄquina Intel depurada e confiĂĄvel. De fato, promessas altas da Arm, Calxeda, Broadcom, AppliedMicro nos Ășltimos 5 anos permaneceram promissoras, causando uma onda sĂ©ria de ceticismo e desconfiança e o surgimento do novo SoCs Arm Server.
No entanto, a nova criação de um outsider Cavium merece atenção. VĂĄrias alteraçÔes foram feitas, nĂŁo apenas a adição do nĂșmero "2" ao nome: a Cavium comprou o design Vulcan da Avago. Vulcan Ă© um design de processador bastante ambicioso, originalmente desenvolvido pela equipe do servidor Arm SoC Broadcom, e tem um legado muito maior que o ThunderX original. AlĂ©m disso, com base em sua experiĂȘncia com o ThunderX, a Cavium conseguiu introduzir algumas melhorias microarquiteturais no design do Vulcan, melhorando seu desempenho e potĂȘncia.
Como resultado, o ThunderX2 âacabouâ por ser um nĂșcleo mais elaborado do que a geração anterior. O nĂșcleo ThunderX tinha um pipeline muito curto e dificilmente suportaria duas instruçÔes por ciclo, mas o nĂșcleo Vulcan foi projetado para 8 buscas e executando atĂ© 4 instruçÔes por ciclo. E ainda mais: todos os 4 fluxos (SMT4) podem estar ativos ao mesmo tempo, fornecendo carregamento de back-end constante. O novo ThunderX2 SoC32 possui 32 desses nĂșcleos com uma frequĂȘncia de atĂ© 2,5 GHz.

Com até 128 threads e pelo menos oito controladores DDR4, essa CPU deve ter um bom desempenho em todas as cargas de servidor. Em outras palavras, diferentemente do ThunderX (1), o ThunderX2 é o primeiro processador de servidor Arm e tem todas as chances de abalar a balança no mercado de servidores.
Quem tem mais: especificaçÔes
Trinta e dois nĂșcleos altos de IPC em um pacote parecem promissores. Mas como Ă© o novo ThunderX2 em comparação com os produtos AMD, Qualcomm e Intel? Na tabela abaixo, comparamos as especificaçÔes de vĂĄrios SKUs de servidor de ponta.

Os leitores informados notarĂŁo imediatamente que o topo da linha de processadores Intel Ă© o Xeon Platinum 8180. No entanto, esse SKU com 205 W TDP e um preço superior a US $ 10.000 geralmente nĂŁo Ă© comparĂĄvel a qualquer processador da lista. JĂĄ cruzamos quase a linha da razĂŁo, incluindo 8176, que, como nos parece, se enquadra nessa lista de acordo com os parĂąmetros do SKU mĂĄximo dos blocos de kernel / thread. De fato, o Cavium posiciona o Cavium 9980 como "comparĂĄvel" ao Xeon Platinum 8164 (e a Intel desempenha esse papel 8176), mas com frequĂȘncias um pouco mais baixas.
No entanto, em termos de desempenho do dólar, a Cavium compara seu carro-chefe 9980 com o Intel Xeon Gold 6148 e, nesse caso, o preço do processador Cavium parece bastante apetitoso. De acordo com os resultados do teste, o ThunderX2 mais råpido estå 30-40% à frente do Xeon 6148, enquanto a oferta da Cavium é US $ 1.300 mais barata. Preços tão agressivos explicam os rumores de que a Qualcomm não entrarå no mercado de servidores.
Os dados da tabela acima mostram diferenças importantes entre os rivais. A Intel parece ter a topologia principal mais avançada e a maior velocidade turbo. A Qualcomm, entretanto, parece mais atraente quando se trata de desempenho por watt.

Como o EPYC da AMD, o ThunderX2 da Cavium provavelmente brilharĂĄ no mercado de computação de alto desempenho (taxa de transferĂȘncia 33% maior, nĂșcleos / threads mais altos). Como no design da AMD, o cache EPYC L3 Ă© lento se vocĂȘ precisar de dados que nĂŁo estĂŁo no slot de cache local de 8 MB. O ThunderX2 Ă© muito mais complexo - com uma arquitetura de anel duplo semelhante Ă arquitetura de anel Xeon v4 (Broadwell-EP). De acordo com informaçÔes da Cavium, sua arquitetura sem bloqueio de anel Ă© capaz de fornecer taxas de transferĂȘncia de atĂ© 6 TB / s.
Essa arquitetura de anel Ă© conectada Ă interconexĂŁo coerente de processadores da Cavium (CCPI2 - na parte superior da figura), que opera a uma velocidade de 600 Gbit / s. Essa conexĂŁo conecta dois nĂłs de soquete / NUMA. 56 pistas do PCIe 3.0 SoC estĂŁo conectadas ao anel, que a Cavium localizou entre os 14 controladores PCIe. Esses 14 controladores podem, por sua vez, se ramificar para x4 ou x1, como mostrado abaixo.

Além disso, ele suporta SR-IOV, que é tão importante para a virtualização de E / S (Xen e KVM).
ThunderX: do fĂĄcil ao complexo
Briefing breve. O ThunderX original era uma versĂŁo aprimorada do Octeon III: uma CPU com a capacidade de executar simultaneamente duas instruçÔes (nĂșcleo de emissĂŁo dupla) com dois pipelines curtos.

Uma vantagem do design original do ThunderX Ă© sua alta eficiĂȘncia energĂ©tica, especialmente para cargas de trabalho com baixo ILP (paralelismo no nĂvel de instrução). Obviamente, um transportador tĂŁo curto apresenta sĂ©rias limitaçÔes para aumentar a frequĂȘncia do relĂłgio, e um design de projeto simples garante baixo desempenho de rosca Ășnica com cargas ILP mĂ©dias e altas, enquanto processadores avariados mais avançados podem extrair o mĂĄximo de "paralelismo oculto" possĂvel. "
O ânovoâ nĂșcleo do Cavium: Vulcan

Comparado com o ThunderX original, o nĂșcleo do Vulcan ThunderX2 Ă© um animal completamente diferente. Anunciado em 2014 pela Broadcom, o Vulcan Ă© um nĂșcleo relativamente grande que controla 4 threads simultĂąneos (SMT4). Como resultado, o back-end deve ser bem carregado, mesmo ao trabalhar com cargas de servidor com baixo ILP.
Para garantir a estabilidade de quatro fluxos SMT, o front-end ThunderX2 pode extrair atĂ© 64 bytes de um cache de instruçÔes associativo de 32 KB de 8 vias, equipado com um prĂ©-buscador simples da "prĂłxima linha". No entanto, a escolha de 8 comandos Ă© possĂvel apenas se nĂŁo houver ramificação nesses 64 bytes. Caso contrĂĄrio, a seleção Ă© interrompida na bifurcação.
Isso significa que, no código de ramificação intensiva (bancos de dados, AI ...), o buscador recebe uma média de ± 5 instruçÔes por ciclo, uma vez que uma das 5 instruçÔes é uma ramificação. As instruçÔes selecionadas são enviadas ao buffer de suavização - um buffer no qual as instruçÔes armazenadas são armazenadas para decodificação.

Em seguida, o decodificador trabalha com um pacote de 4 instruçÔes. Entre o decodificador e a fase de renomeação, cada fluxo possui um "buffer slip", que consiste em 8 pacotes. Com 4 threads, até 32 pacotes (128 instruçÔes) podem ser armazenados em buffer a qualquer momento.
Essas 4 instruçÔes - o pacote - movem-se ao longo do pipeline atĂ© que uma Ășnica fila de mensagens seja alcançada para o planejador. Como o Loop Stream Detector da Intel (funciona como um pequeno cache), ele tambĂ©m possui um buffer de loop e um preditor. Esse buffer de loop elimina previsĂ”es incorretas de ramificação e contĂ©m ÎŒops decodificados que "encurtam" o pipeline e reduzem a energia usada para decodificação.
Podem ser executadas atĂ© 6 instruçÔes por vez. A implementação inclui 2 slots ALU / FP / NEON, 1 slot ALU / tap, 2 slots de carregamento / armazenamento (16 bytes) e 1 slot de armazenamento limpo que envia 16 bytes para o cache D. Existe um pequeno TL1 LB (a Cavium nĂŁo divulgarĂĄ quanto) para alternar com atraso zero de endereços virtuais para fĂsicos. NĂŁo hĂĄ prĂ©-buscador de hardware para o cache L1 D1, mas o cache L2 possui um prĂ©-buscador de hardware bastante sofisticado que pode reconhecer padrĂ”es (ele pode funcionar passo a passo ou recuperar a prĂłxima linha).
Isso é suficiente para "alimentar" o backend, que pode suportar 4 instruçÔes por ciclo a partir de 4 threads diferentes.
Diferenças na microarquitetura
A Cavium publicou uma quantidade limitada de informaçÔes sobre os nĂșcleos ThunderX2. Alguns recursos principais de vĂĄrias arquiteturas de processador estĂŁo resumidos abaixo.

Uma anĂĄlise detalhada estĂĄ alĂ©m do escopo deste artigo. Mas vocĂȘ pode ler as anĂĄlises de Johan De Gelas sobre a arquitetura de Falkor, Skylake e Zen no AnandTech. NĂłs nos limitamos Ă s diferenças mais Ăłbvias.
Ă bastante Ăłbvio que o desempenho single-thread da Intel permanece incomparĂĄvel: o nĂșcleo Skylake Ă© o nĂșcleo que executa a maioria das instruçÔes em tempo real e, o mais importante, roda em uma velocidade de clock mais alta. O nĂșcleo do ThunderX2 Ă© diferente, pois extrai o mĂĄximo de instruçÔes por ciclo, capaz de suportar constantemente 4 threads. O buscador capturarĂĄ 8 equipes de um segmento, depois 8 do segundo segmento e continuarĂĄ alternando entre os segmentos. Isso significa que previsĂ”es ruins podem reduzir significativamente o desempenho de um Ășnico encadeamento.
Os SKUs ThunderX2: 16 a 32 nĂșcleos
O SKU usado para os testes Ă© o ThunderX2 CN9980 2.2. Este Ă© o SKU de ponta, contĂ©m 32 nĂșcleos a uma frequĂȘncia de 2,2 GHz com capacidade de aumentar atĂ© 2,5 GHz.

Se vocĂȘ acredita nos planos da Cavium, nos prĂłximos meses haverĂĄ muito mais SKUs. A Cavium afirma que o CN9980 estarĂĄ disponĂvel em breve com uma frequĂȘncia de 2,5 GHz e turbo de atĂ© 3 GHz.
A Cavium listou todos os SKUs planejados, juntamente com os SKUs Intel comparåveis. Pela definição da Cavium, um SKU Intel comparåvel é um chip que atinge o mesmo SPECInRate (2017) sob gcc que o SKU da Cavium.

A Cavium acredita que o CN9880 2.2 que adquirimos Ă© comparĂĄvel ao 8164, muito mais caro. Para nossos testes, comparamos com o 8176 (SKU da Intel disponĂvel para nĂłs). NĂŁo que isso importe: o 8176 possui uma velocidade de clock apenas 3% mais alta e 2 nĂșcleos adicionais (+ 7%) em comparação com o 8164. No entanto, observe que embora o ThunderX2 Cavium possa realmente competir com os SKUs da Intel indicados, eles oferecem o mesmo desempenho por um terço do custo do SKU da Intel.
Na prĂłxima parte:
- Configuração e metodologia de teste
- Subsistema de memĂłria: Largura de banda
- Desempenho de thread Ășnico: SPEC CPU2006
- SPEC CPU2006 Cont: desempenho baseado em nĂșcleo com SMT
Obrigado por ficar conosco. VocĂȘ gosta dos nossos artigos? Deseja ver materiais mais interessantes? Ajude-nos fazendo um pedido ou recomendando a seus amigos, um
desconto de 30% para os usuĂĄrios da Habr em um anĂĄlogo exclusivo de servidores bĂĄsicos que inventamos para vocĂȘ: Toda a verdade sobre o VPS (KVM) E5-2650 v4 (6 nĂșcleos) 10GB DDR4 240GB SSD 1Gbps de US $ 20 ou como dividir o servidor? (as opçÔes estĂŁo disponĂveis com RAID1 e RAID10, atĂ© 24 nĂșcleos e atĂ© 40GB DDR4).
Dell R730xd 2 vezes mais barato? Somente nĂłs temos
2 TVs Intel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD 1Gbps 100 a partir de US $ 249 na Holanda e nos EUA! Leia sobre
Como criar um prédio de infraestrutura. classe usando servidores Dell R730xd E5-2650 v4 custando 9.000 euros por um centavo?