Garima Kochhar, Deepthi Cherlopalle, Josué Weage. Laboratório de inovação em IA e HPC, outubro de 2019
Não aplicável
No mundo da HPC de hoje, o processador EPYC de última geração da AMD, de codinome Roma, quase não precisa de uma introdução. Temos avaliado sistemas baseados em Roma no Laboratório de inovação em IA e HPC nos últimos meses e, recentemente, a Dell Technologies anunciou
servidores compatíveis com essa arquitetura de processador. Este primeiro blog da série Rome discutirá a arquitetura do processador Rome, como ela pode ser ajustada para o desempenho da HPC e apresentará o desempenho micro de referência de desempenho inicial. Os blogs subseqüentes descreverão o desempenho de aplicativos nos domínios de CFD, CAE, dinâmica molecular, simulação meteorológica e outros aplicativos.
Roma é a CPU EPYC de 2ª geração da AMD, atualizando sua 1ª geração Naples. Nós discutimos Nápoles neste blog no ano passado.
Uma das maiores diferenças arquitetônicas entre Nápoles e Roma que beneficia a HPC é a nova matriz de E/S em Roma. Em Roma, cada processador é um pacote multi-chip composto por até 9 chiplets , como mostrado na Figura 1. Há uma matriz central de E/S de 14 nm que contém todas as funções de E/S e memória, como controladores de memória, links de fabric Infinity no soquete e na conectividade entre soquetes e PCI-e. Há oito controladores de memória por soquete que oferecem suporte a oito canais de memória executando DDR4 a 3200 MT/s. Um servidor de soquete único pode dar suporte a até 130 faixas PCIe de 4ª geração. Um sistema de soquete duplo pode suportar até 160 faixas PCIe de 4ª geração.
(Figura 1 Pacote de vários chips do Rome com uma matriz de E/S central e matrizes de até oito núcleos)
Ao redor da matriz central de E/S há até oito chiplets de núcleo de 7nm. O chiplet de núcleo é chamado de matriz de cache de núcleo ou CCD. Cada CCD tem núcleos de CPU baseados na microarquitetura Zen2, cache L2 e cache L3 de 32 MB. O CCD em si tem dois complexos de cache de núcleo (CCX), cada CCX tem até quatro núcleos e 16 MB de cache L3. A Figura 2 mostra um CCX.
(Figura 2 : um CCX com quatro núcleos e cache L3 de 16 MB compartilhado)
Os diferentes modelos de CPU Rome têm diferentes números de núcleos,
mas todos têm uma matriz de E/S central.
Na parte superior há um modelo de CPU de 64 núcleos, por exemplo, o EPYC 7702. A saída lstopo nos mostra que este processador tem 16 CCXs por soquete, cada CCX tem quatro núcleos, conforme mostrado na Figura 3 & 4, gerando assim 64 núcleos por soquete. 16MB L3 por CCX, ou seja, 32MB L3 por CCD dá a este processador um total de 256MB de cache L3. No entanto, observe que o cache L3 total no Rome não é compartilhado por todos os núcleos. O cache L3 de 16 MB em cada CCX é independente e é compartilhado apenas pelos núcleos no CCX, conforme ilustrado na Figura 2.
Uma CPU de 24 núcleos, como o EPYC 7402, tem 128 MB de cache L3. A saída de lstopo na Figura 3 & 4 ilustra que este modelo tem três núcleos por CCX e 8 CCX por soquete.
(Figura 3 & 4 saída lstopo para CPUs de 64 e 24 núcleos)
Não importa o número de CCDs, cada processador Rome é logicamente dividido em quatro quadrantes , com CCDs distribuídos da maneira mais uniforme possível pelos quadrantes e dois canais de memória em cada quadrante. A matriz de E/S central pode ser considerada como suportando logicamente os quatro quadrantes do soquete.
A matriz de E/S central em Roma ajuda a melhorar as latências de memória em relação às medidas em Nápoles. Além disso, permite que a CPU seja configurada como um único domínio NUMA, permitindo acesso uniforme à memória para todos os núcleos no soquete. Isso é explicado abaixo.
Os quatro quadrantes lógicos em um processador Rome permitem que a CPU seja particionada em diferentes domínios NUMA. Essa configuração é chamada de NUMA por soquete ou NPS.
Quando disponível, o NPS4 é recomendado para HPC, pois espera-se que ele forneça a melhor largura de banda de memória, as menores latências de memória, e nossos aplicativos tendem a ser compatíveis com NUMA. Quando o NPS4 não estiver disponível, recomendamos o NPS mais alto compatível com o modelo de CPU - NPS2 ou, até mesmo, NPS1.
Devido à infinidade de opções de NUMA disponíveis em plataformas baseadas em Rome, o BIOS do PowerEdge permite dois métodos diferentes de enumeração de núcleos na enumeração de MADT. Os núcleos de números de enumeração linear estão em ordem, preenchendo um soquete CCX, CCD antes de passar para o próximo soquete. Em uma CPU 32c, os núcleos 0 a 31 estarão no primeiro soquete, os núcleos 32-63 no segundo soquete. A enumeração round-robin numera os núcleos entre as regiões NUMA. Nesse caso, os núcleos com números pares estarão no primeiro soquete, e os núcleos com números ímpares no segundo soquete. Para simplificar, recomendamos a enumeração linear para HPC. Consulte a Figura 5 para obter um exemplo de enumeração de núcleo linear em um servidor 64c de soquete duplo configurado no NPS4. Na figura, cada caixa de quatro núcleos é um CCX, cada conjunto de oito núcleos contíguos é um CCD.
(Figura 5 Enumeração de núcleo linear em um sistema de soquete duplo, configuração NPS4 de 64c por soquete, em um modelo de CPU de 8 CCD)
Outra opção de BIOS específica do Rome é chamada de Dispositivo de E/S preferencial. Este é um importante botão de ajuste para largura de banda InfiniBand e taxa de mensagens. Ele permite que a plataforma priorize o tráfego para um dispositivo de E/S. Essa opção está disponível em plataformas Rome de um soquete e de dois soquetes. O dispositivo InfiniBand na plataforma deve ser selecionado como o dispositivo preferencial no menu do BIOS para alcançar a taxa de mensagens completa quando todos os núcleos de CPU estão ativos.
Semelhante ao Nápoles, o Rome também suporta hyper-threadingou processador lógico. Para HPC, deixamos isso desativado, mas alguns aplicativos podem se beneficiar da ativação do processador lógico. Procure nossos blogs subsequentes sobre estudos de aplicação de dinâmica molecular.
Semelhante a Nápoles, Roma também permite CCX como domínio NUMA. Essa opção expõe cada CCX como um nó NUMA. Em um sistema com CPUs de soquete duplo com 16 CCXs por CPU, essa configuração exporá 32 domínios NUMA. Neste exemplo, cada soquete tem 8 CCDs, ou seja, 16 CCX. Cada CCX pode ser ativado como seu próprio domínio NUMA, fornecendo 16 nós NUMA por soquete e 32 em um sistema de dois soquetes. Para HPC, recomendamos deixar CCX como domínio NUMA na opção padrão de desativado. Espera-se que a ativação dessa opção ajude os ambientes virtualizados.
Semelhante a Nápoles, Roma permite que o sistema seja definido no modo Performance Determinism ou Power Determinism . No determinismo de desempenho, o sistema opera na frequência esperada para o modelo de CPU, reduzindo a variabilidade em vários servidores. No determinismo de potência, o sistema opera no TDP máximo disponível do modelo de CPU. Isso amplia a variação de peça para peça no processo de fabricação, permitindo que alguns servidores sejam mais rápidos do que outros. Todos os servidores podem consumir a potência nominal máxima da CPU, tornando o consumo de energia determinista, mas permitindo alguma variação de desempenho em vários servidores.
Como seria de esperar das plataformas PowerEdge, o BIOS tem uma meta opção chamada System Profile. A seleção do perfil do sistema Performance Optimized ativará o modo turbo boost, desativará os C-states e definirá o controle deslizante determinism como Power determinism, otimizando o desempenho.
Muitos de nossos leitores podem ter ido direto para esta seção, então vamos mergulhar de cabeça.
No Laboratório de inovação em IA e HPC, criamos um cluster de 64 servidores baseado em Roma que chamamos de Minerva. Além do cluster Minerva homogêneo, temos algumas outras amostras de CPU Rome que conseguimos avaliar. Nosso testbed está descrito na Tabela 1 e Tabela 2.
(Tabela 1 Modelos de CPU Rome avaliados neste estudo)
CPU | Núcleos por soquete | Config | Relógio base | TDP |
---|---|---|---|---|
7702 | 64c | 4c por CCX | 2,0 GHz | 200W |
7502 | 32°C | 4c por CCX | 2,5 GHz | 180 W |
7452 | 32°C | 4c por CCX | 2,35 GHz | 155 W |
7402 | 24°C | 3c por CCX | 2,8 GHz | 180 W |
(Tabela 2 Testbed)
Componente | Detalhes |
---|---|
Servidor | PowerEdge C6525 |
Processador | Como mostrado na Tabela 1: soquete duplo |
Memória | 256 GB, 16 de 16 GB 3200 MT/s DDR4 |
Interconexão | ConnectX-6 Mellanox Infini Banda HDR100 |
Sistema operacional | Red Hat Enterprise Linux 7.6 |
Kernel | 3.10.0.957.27.2.e17.x86_64 |
Disco | Módulo M.2 SSD SATA de 240 GB |
Os testes de largura de banda da memória no Rome são apresentados na Figura 6. Esses testes foram executados no modo NPS4. Medimos ~270-300 GB/s de largura de banda de memória em nosso PowerEdge C6525 de soquete duplo ao usar todos os núcleos no servidor nos quatro modelos de CPU listados na Tabela 1. Quando apenas um núcleo é usado por CCX, a largura de banda da memória do sistema é ~9-17% maior do que a medida com todos os núcleos.
A maioria das cargas de trabalho de HPC inscreverá totalmente todos os núcleos no sistema ou os centros de HPC serão executados no modo de alto throughput com vários trabalhos em cada servidor. Portanto, a largura de banda de memória all-core é a representação mais precisa da largura de banda de memória e dos recursos de largura de banda de memória por núcleo do sistema.
A Figura 6 também representa a largura de banda da memória medida na plataforma EPYC Naples da geração anterior, que também suportava oito canais de memória por soquete, mas executada a 2667 MT/s. A plataforma Roma oferece largura de banda de memória total de 5% a 19% melhor do que o Naples, e isso se deve predominantemente à memória mais rápida de 3.200 MT/s. Mesmo com 64c por soquete, o sistema Rome pode fornecer mais de 2 GB/s/núcleo.
Comparando as diferentes configurações do NPS, uma largura de banda de memória ~13% maior foi medida com o NPS4 em comparação com o NPS1, conforme mostrado na Figura 7.
(Figura 6 Largura de banda da memória NPS4 STREAM Triad de soquete duplo)
(Figura 7 Largura de banda de memória NPS1 versus NPS2 vs NPS 4)
A Figura 8 plota a largura de banda InfiniBand de núcleo único para testes unidirecionais e bidirecionais. O testbed usou HDR100 rodando a 100 Gbps, e o gráfico mostra o desempenho esperado da transmissão de dados para esses testes.
Figura 8 Largura de banda InfiniBand (single core)
Figura 9 Taxa de mensagens InfiniBand (todos os núcleos)
Em seguida, os testes de taxa de mensagens foram realizados usando todos os núcleos em um soquete nos dois servidores em teste. Quando a E/S preferencial é ativada no BIOS e o adaptador ConnectX-6 HDR100 é configurado como o dispositivo preferencial, a taxa de mensagens de todos os núcleos é significativamente maior do que quando a E/S preferencial não está ativada, conforme mostrado na Figura 9. Isso ilustra a importância dessa opção de BIOS ao ajustar para HPC e, especialmente, para escalabilidade de aplicativos de vários nós.
A microarquitetura de Roma pode desativar 16 DP FLOP/ciclo, o dobro da de Nápoles, que era de 8 FLOPS/ciclo. Isso dá a Roma 4x o pico teórico FLOPS sobre Nápoles, 2x a partir da capacidade aprimorada de ponto flutuante e 2x a partir do dobro do número de núcleos (64c vs 32c). A Figura 10 mostra os resultados de HPL medidos para os quatro modelos de CPU Rome que testamos, juntamente com nossos resultados anteriores de um sistema baseado em Nápoles. A eficiência do Rome HPL é notada como o valor percentual acima das barras no gráfico e é maior para os modelos de CPU com TDP inferior.
Os testes foram executados no modo Power Determinism, e um delta de ~5% no desempenho foi medido em 64 servidores configurados de maneira idêntica, os resultados aqui estão nessa faixa de desempenho.
(Figura 10 : HPL de servidor único no NPS4)
Em seguida, testes de HPL de vários nós foram executados e esses resultados estão plotados na Figura 11. As eficiências de HPL do EPYC 7452 permanecem acima de 90% em uma escala de 64 nós, mas as quedas na eficiência de 102% para 97% e de volta para até 99% precisam de avaliação adicional
(Figura 11 : HPL de vários nós, EPYC 7452 de soquete duplo sobre HDR100 InfiniBand)
Estudos iniciais de desempenho em servidores baseados em Roma mostram o desempenho esperado para nosso primeiro conjunto de referências de desempenho de HPC. O ajuste do BIOS é importante na configuração para obter o melhor desempenho, e as opções de ajuste estão disponíveis em nosso perfil de carga de trabalho de HPC do BIOS, que pode ser configurado de fábrica ou usando utilitários de gerenciamento de sistemas da Dell EMC.
O Laboratório de inovação em HPC e IA tem um novo cluster PowerEdge de 64 servidores baseado em Roma, Minerva. Observe este espaço para blogs subsequentes que descrevem estudos de desempenho de aplicativos em nosso novo cluster Minerva.