Como todos sabemos, os processadores de arquitetura x86 dominam atualmente os mercados de PC e servidores, enquanto os processadores de arquitetura Arm dominam o mercado móvel e ocupam uma grande participação de mercado no mercado de IoT. No entanto, nos últimos anos, a arquitetura RISC-V tornou-se muito popular no campo da Internet das Coisas que se concentra na eficiência energética devido às suas vantagens como código aberto, instruções simplificadas e escalabilidade.
Impulsionado pela RISC-V International e fabricantes de chips relacionados, a RISC-V também começou a entrar no mercado de servidores com requisitos de desempenho mais elevados.
No início de 2023, a RISC-V International identificou a HPC como uma área estratégica prioritária para o crescimento da RISC-V e, juntamente com as extensões de vetores recentemente aprovadas e um grande número de esforços de software de HPC para portar as principais bibliotecas e ferramentas de HPC, fica claro que o impulso nesta área está a crescer rapidamente.
Muitos projetos em todo o mundo, como o projeto europeu eProcessor, a CPU Esperanto com milhares de núcleos RISC-V e o projeto RISE de vários fornecedores, que visa desenvolver suporte para os principais componentes de software do RISC-V, podem promover a popularidade do RISC-V na computação de ponta, incluindo HPC, e, em última análise, permitir que a comunidade construa supercomputadores em torno desta tecnologia.
Além disso, pesquisas iniciais de aplicações apoiam os benefícios que o RISC-V pode trazer para cargas de trabalho de alto desempenho.
Em dezembro de 2022, a startup de chips Ventana Microsystems lançou o primeiro CPU-VeyronV1 de 192 núcleos baseado na arquitetura RISC-V do mundo no RISC-V Summit.
De acordo com relatos, VeyronV1 usa tecnologia de processo avançada de 5 nm, baseada no núcleo RISC-V de alto desempenho desenvolvido pela Ventana, design de 8 pipelines, suporta execução fora de ordem, com uma frequência principal de até 3,6 GHz, cada cluster tem até 16 núcleos, e vários clusters podem suportar até Expansões para 192 núcleos, tem cache L3 compartilhado de 48 MB, tem medidas avançadas de mitigação de ataque de canal lateral, IOMMU e Advanced Interrupt Architecture (AIA), suporta funções RAS abrangentes e métodos de ajuste de desempenho de software de cima para baixo para atender às diversas necessidades do data center.
Segundo dados divulgados pela Ventana, no teste SPECint2017,Com consumo de energia de 300 W, a versão de 128 núcleos do VeyronV1 está significativamente à frente do AMDEPYCMilan7763 de 64 núcleos (280 W) e é duas vezes mais poderosa que o AWS Graviton G3 de 64 núcleos (núcleo Neoversev1) e o Intel Xeon Ice Lake8380 de 40 núcleos (270 W). Claro, isso se deve principalmente ao fato de o número de núcleos ter atingido o dobro dos produtos concorrentes.
Deve-se ressaltar que o VeyronV1 não possui SIMD ou unidade de execução vetorial, o que será muito desvantajoso para processadores de servidor Intel ou AMD com AVX-512.
Além disso, o VeyronV1 não está atualmente em produção em massa. Anteriormente, foi prometido fornecer amostras aos clientes no segundo ou terceiro trimestre deste ano. Portanto, os dados anunciados oficialmente acima ainda estão no papel.
Em contraste, o chip de servidor RISC-V de 64 núcleos SG2042 lançado por um fabricante nacional em março deste ano foi enviado em pequenos lotes.
Recentemente, o pesquisador estrangeiro Nick Brown conduziu testes reais neste chip por meio do conjunto de benchmark RAJAPerf e descobriu que, em comparação com os chips RISC-V mais recentes amplamente disponíveis, seu desempenho médio por núcleo aumentou de 5 a 10 vezes. No entanto, sob cargas de trabalho multithread, o desempenho médio das CPUs x86 de alto desempenho ainda é de 4 a 8 vezes maior.
De acordo com o relatório de pesquisa, o processador RISC-V de 64 núcleos funciona a 2 GHz, consiste em quatro núcleos C920 de alto desempenho e adota um design de pipeline superescalar multi-problema fora de ordem de 12 níveis.
O C920 fornece o conjunto de instruções RV64GCV com três unidades de decodificação, quatro de renomeação/programação, oito de emissão/execução e duas unidades de execução de carregamento/armazenamento. Suporta extensão padrão de vetorização (RVVv0.7.1), largura do vetor é de 128 bits, suporta tipos de dados FP16, FP32, INT8, INT16, INT32 e INT64. No entanto, o C920 não suporta vetorização FP64
O ponto flutuante de precisão dupla é a base da grande maioria das cargas de trabalho de alto desempenho, portanto, os núcleos que podem suportar a vetorização dessas operações podem fornecer maior desempenho para HPC, afirma o estudo. Cada núcleo C920 também contém 64 KB de cache L1 de instruções (I) e dados (D), 1 MB de cache L2, compartilhado entre o cluster de quatro núcleos, e 64 MB de cache de sistema L3, compartilhado por todos os núcleos do cluster. Quatro controladores de memória DDR4-3200 e 32 pistas PCIeGen4 também estão disponíveis.
Uma consideração importante para cargas de trabalho de HPC é a vetorização e, como o núcleo C920 oferece suporte apenas a RVVv0.7.1, o suporte ao compilador é um desafio. A versão upstream atual do compilador RISC-VGNU não suporta nenhuma versão das extensões vetoriais. Embora o repositório GNU contenha uma ramificação rvv next, projetada para suportar rvvv1.0, ela não era mantida ativamente no momento em que os pesquisadores escreveram seu estudo.
Além disso, havia uma ramificação rvv-0.7.1 para rvvv0.7.1, mas essa ramificação foi removida. Devido à falta de suporte para GCC principal, o T-Head fornece seu próprio fork do compilador GNU (Xuantie GCC), que é otimizado para seus processadores.
O compilador personalizado do T-Head suporta RVVv0.7.1 e suas próprias extensões personalizadas. Embora várias versões deste compilador tenham sido fornecidas, o GCC8.4, como parte de sua versão 20210618, oferece os melhores recursos de autovetorização, portanto esta foi a versão escolhida para os experimentos de benchmarking conduzidos pelos pesquisadores.
Esta versão do compilador gera um componente RVV específico de comprimento de vetor (VLS) que é específico para a largura de vetor de 128 bits do C920. Todos os kernels foram compilados no nível de otimização três e todos os resultados relatados são calculados em média em cinco execuções.
Comparação com outros núcleos RISC-V de alto desempenho
Os pesquisadores compararam o desempenho do SG2042 com as placas de desenvolvimento StarFive VisionFiveV1 e VisionV2. V1 contém o StarFive JH7100SoC, enquanto V2 contém o StarFive JH7110SoC.
Ambos os SoCs, JH7100 e JH7110, são construídos no núcleo RISC-VSiFiveU74 de 64 bits, com JH7100 contendo dois núcleos e JH7110 contendo quatro núcleos. O SoC está listado como rodando a 1,5 GHz e o núcleo U74 contém cache L1 de 32 KB (D) e 32 KB (I). Ambos os modelos SoC também contêm cache 2MBL2 compartilhado entre núcleos.
No entanto, o SiFiveU74 oferece apenas RV64GC e, portanto, não suporta extensões de vetor RISC-V.
△A Figura 1 mostra a comparação de desempenho de núcleo único entre VisionFiveV2 e V1 e SG2042 em termos de precisão dupla (FP64) e precisão simples (FP32). Onde a barra é o número médio de vezes mais rápido ou mais lento em toda a categoria e as linhas variam da maior para a menor.
Como pode ser visto na Figura 1, um único núcleo C920 supera os núcleos U74 de V2 e V1 em precisão dupla e simples.
Com precisão dupla, o desempenho médio do núcleo C920 é de 4,3 a 6,5 vezes o do U74 em V2 rodando com precisão dupla. Além disso, em precisão única, o C920 teve um desempenho de 5,6 a 11,8 vezes o desempenho médio do benchmark. É um ganho de desempenho impressionante e não há núcleos no C920 que funcionem mais lentamente que o U74.
O desempenho de alguns núcleos no C920 é muito impressionante, por exemplo, o benchmark do conjunto de memória do grupo de algoritmos roda 40 vezes mais rápido no FP32 e 18 vezes mais rápido no FP64 do que no U74.
É importante enfatizar que este benchmark está nesses núcleos na melhor configuração possível, ou seja, a vetorização é utilizada no C920, mas a vetorização não é suportada no U74 e, portanto, não está disponível em V1 ou V2.
Há uma diferença significativa de desempenho entre FP32 e FP64 no SG2042, indicando que, na verdade, as operações do vetor C920 não suportam FP64. Em comparação, a diferença de desempenho entre executar precisão dupla e simples na V2 é muito menor.
Um aspecto dos resultados na Figura 1 que surpreendeu os pesquisadores foi que o VisionFiveV1 foi significativamente mais lento que o V2. Considerando que os testes foram executados apenas no RAJAPerf em um único núcleo, a natureza dual-core e quad-core do chip não importa, pois ambos contêm o mesmo núcleo U74, então o desempenho deve ser bastante semelhante.
No entanto, V1 é seis a três vezes mais lento que V2 com precisão dupla e uma a três vezes mais lento com precisão simples. Embora se possa presumir que o V1 possa estar funcionando em uma frequência de clock mais baixa que o V2, embora ambos estejam listados como rodando a 1,5 GHz na folha de dados, não há documentação ou saída na máquina para confirmar isso.
Como pode ser visto na Figura 1, o desempenho alcançado por um único núcleo C920 é impressionante em comparação com os núcleos RISC-V existentes e disponíveis publicamente. T-Head descreve o núcleo como um processador RISC-V de alto desempenho.
Os testes também mostram melhorias significativas no desempenho em todo o conjunto de benchmarks em comparação com o U74, que foi anteriormente considerado a melhor escolha entre RISC-VCPUs amplamente disponíveis para experimentar cargas de trabalho de HPC.
Além do desempenho de núcleo único, o SG2042 também está significativamente à frente do JH7100 da V1 e do SoC JH7110 da V2 em termos de contagem de núcleos.
Comparação com o desempenho da CPU do servidor x86
Então, em comparação com outros chips de servidor x86 comerciais, como o SG2042 funciona em cargas de trabalho de HPC?
A este respeito, os pesquisadores compararam-no com outras CPUs usadas em servidores da geração atual, nomeadamente o AMD RomeEPYC7742 de 64 núcleos, o Intel Broadwell Xeon E5-2695 de 18 núcleos, o Intel Ice Lake Xeon 6330 de 28 núcleos e o Intel Sandy Bridge Xeon E5-2609 de 4 núcleos.
Os testes foram realizados apenas nos núcleos físicos dessas CPUs x86, uma vez que todos os SMT estão desabilitados por padrão.
O AMDEPYC7742 contém 64 núcleos físicos em quatro regiões NUMA, cada uma com 16 núcleos, mas oito controladores de memória. Cada núcleo contém 32 KB (I) e 32 KB (D) de cache L1, 512 KB de cache L2 e 16 MB de cache L3 compartilhados entre os quatro núcleos. O EPYC7742 oferece suporte para AVX2, possui registros vetoriais de 256 bits de largura, duas vezes mais largos que o SG2042, e suporta vetorização para FP64.
Os 18 núcleos físicos do Intel Xeon E5-2695 estão localizados em uma área NUMA, fornecendo cache L1 de 32 KB (I) e 32 KB (D), 256 KB de cache L2 e 45 MB de cache L3 compartilhado entre núcleos. Semelhante ao AMD EPYC7742, o Xeon E5-2695 suporta AVX2 e possui quatro controladores de memória.
O Intel Xeon 6330 é o CPU mais recente comparado, com todos os 28 núcleos físicos em uma região NUMA, com 8 controladores de memória, com cache L1 de 32 KB (I) e 48 KB (D), cache L3 de 1 MBL2 por núcleo e cache L3 compartilhado de 43 MB. Xeon6330 suporta AVX512 e fornece registros vetoriais de 512 bits.
O Intel Xeon E5-2609 é o CPU mais antigo neste teste. Foi lançado em 2012 e oferece apenas quatro núcleos físicos. Cada núcleo possui cache L1 de 64 KB (I) e 64 KB (D), bem como cache L2 de 256 KB e cache compartilhado de 10 MBL3. Este E5-2609 suporta apenas AVX, portanto o comprimento do registro vetorial é igual ao SG2042, 128 bits, embora AVX suporte FP64.
Em todos os testes,Os pesquisadores desativaram o hyperthreading no núcleo físico x86.Os pesquisadores usaram o GCC versão 8.3 em todos os sistemas, exceto ARCHER2, e a compilação sempre foi realizada no nível de otimização O3. Um sistema que é executado no número de threads de maior desempenho.
△A Figura 4 mostra o desempenho de núcleo único de cada chip executando o conjunto de benchmark no FP64. Onde a barra é o número médio de vezes mais rápido ou mais lento em toda a categoria e as linhas variam da maior para a menor. SG2042 é a linha de base média.
A partir dos resultados do teste,Todos os núcleos x86 tiveram desempenho melhor que o C920, exceto o antigo núcleo Xeon E5-2609, que teve desempenho médio mais lento nas categorias de benchmark de streaming e algoritmo.
As CPUs AMD EPYC7742 e Intel Xeon6330 tendem a ter melhor desempenho do que o Intel XeonE5-2695, o que é compreensível, já que o XeonE5-2695 é o modelo mais antigo dos três.
△A Figura 5 mostra o número de vezes que o desempenho de núcleo único de cada chip executa o conjunto de benchmark no FP32 em comparação com a linha de base.
Como você pode ver na Figura 5, o AMD EPYC7742 é bastante fraco quando executado em precisão simples versus precisão dupla, enquanto o desempenho médio do processador Intel é igualmente bom. Na verdade, ao usar o FP32, o antigo núcleo Xeon E5-2609 supera o C920 em média em todos os níveis.
No entanto, o gráfico de barras médio na Figura 5 não fornece o quadro completo.
O C920 suporta apenas vetorização para FP32 e, de fato, como pode ser visto nas linhas da Figura 5 e Figura 4, a velocidade máxima de muitas classes de benchmark para FP32 é mais rápida que a do FP64.
Além disso, há mais núcleos mais lentos com desempenho mais lento em uma CPU x86 do que em um C920 em FP32. Esses núcleos são onde a autovetorização é efetivamente aplicada e, de fato, pode-se observar que, para a classe de benchmark lcals, pelo menos um núcleo em todas as CPUs x86 tem desempenho pior do que o C920.
Em resumo, em termos de comparação de desempenho de núcleo único, o desempenho médio do AMD EPYC7742 no FP32 é 3 vezes mais rápido que o C920, o Intel XeonE5-2695 é 2 vezes mais rápido, o Intel Xeon6330 também é 4 vezes mais rápido, o XeonE5-2609 é 2 vezes mais rápido, e esses números no FP64 são 4 vezes, 4 vezes, 5 vezes e 20% mais rápidos, respectivamente.
△Comparação de desempenho multithread do FP64, relatando o número de vezes mais rápido ou mais lento que a linha de base
A Figura 6 mostra a comparação de desempenho do FP64 de dupla precisão.
Pode-se observar que os testes básicos, lcals, polybench e stream class são os que mais se beneficiam com mais núcleos, portanto o desempenho médio do SG2042 é melhor que o do antigo Xeon E5-2609.
△Comparação de desempenho multithread FP32, relatando o número de vezes mais rápido ou mais lento que a linha de base
A Figura 7 mostra a comparação de desempenho multithread do FP32, e esses resultados contêm as maiores diferenças. Para melhorar a legibilidade, os pesquisadores restringiram o eixo vertical e rotularam os valores reais que excedem esse valor.
Quando se trata de FP32 multithread, o SG2042 tende a ter um desempenho um pouco melhor do que o FP64 em CPUs x86, embora a classe polybench seja atípica, pois tem um desempenho muito melhor nas três CPUs x86 mais recentes e o Intel Xeon E5-2609 tem um desempenho muito pior.
Para resumir, ao comparar o desempenho multithread do SG2042 com CPUs x86, seu desempenho médio de 64 núcleos é melhor do que o Intel Xeon E5-2609 de 4 núcleos em todos os tipos de benchmark executados em FP32 e FP64.
O desempenho do AMD EPYC7742 de 64 núcleos em FP32 e FP64 é 8 vezes e 5 vezes maior que o do SG2042, respectivamente. O Intel Xeon E5-2695 de 18 núcleos atinge uma média de 6 vezes e 4 vezes em precisão simples e precisão dupla, respectivamente. Finalmente, o Intel Xeon6330 de 28 núcleos tem desempenho 6x e 8x melhor em FP32 e FP64, respectivamente.
para concluir:
Embora muitas empresas estejam atualmente desenvolvendo protótipos de hardware RISC-V de alto desempenho, até agora, as opções têm sido muito limitadas quando se procura executar cargas de trabalho em software RISC-V disponível comercialmente, disseram os pesquisadores.
Independentemente disso, embora essas soluções permitam a experimentação com RISC-V, elas não fornecem arquitetonicamente os recursos necessários para produzir cargas de trabalho de alto desempenho. Portanto, embora a comunidade HPC esteja interessada no RISC-V, ainda não está totalmente preparada para a tecnologia.
É claro que, como o primeiro chip de servidor RISC-V multi-core amplamente disponível no mundo para HPC, o SG2042 pode aumentar significativamente o interesse e a adoção do RISC-V na comunidade HPC. No entanto, uma questão importante é que ele ainda está muito atrás das CPUs x86 predominantes na atual geração de supercomputadores.
Ainda assim, este é um chip de servidor RISC-V muito interessante que oferece algumas mudanças significativas em comparação com o hardware RISC-V atualmente disponível comercialmente.
Embora o desempenho ainda não esteja no nível das CPUs de servidores x86, deve-se enfatizar que os fornecedores de RISC-V percorreram um longo caminho em um curto período de tempo. Por outro lado, as CPUs x86 têm uma longa história e se beneficiam de muitos anos de desenvolvimento.
Atualmente, o principal concorrente do RISC-V no mercado de CPU para servidores é a CPU para servidores Arm. Afinal, teoricamente o RISC-VCPU pode ter custo menor, maior customização e escalabilidade do que o Arm CPU.
Para a próxima geração de processadores RISC-V de alto desempenho, os pesquisadores acreditam que fornecer RVVv1.0 será muito útil, pois fornecerá o uso de GCC e Clang de linha principal para compilar código vetorizado.
Além disso, fornecer vetorização FP64, registros vetoriais mais amplos, cache L1 aumentado e mais controladores de memória por região NUMA também pode trazer benefícios significativos de desempenho e ajudar a preencher a lacuna com processadores x86 de alto desempenho.
acesso:
Shopping Jingdong