Artigo escrito por Varun Bawa, Savitha Pareek e Ashish K Singh, do Laboratório de Inovação em HPC e IA, em abril de 2019
Com o lançamento da 2ª geração de processadores escaláveis da família Intel Xeon® (arquitetura com o codinome "Cascade Lake"), a Dell EMC atualizou os servidores PowerEdge de 14ª geração para se beneficiar do maior número de núcleos e velocidades de memória mais altas, beneficiando assim os aplicativos HPC.
Este blog apresenta o primeiro conjunto de resultados e discute o impacto das diferentes opções de ajuste de BIOS disponíveis no Dell EMC PowerEdge C6420 com os processadores Intel Xeon® Cascade Lake mais recentes para algumas referências de desempenho e aplicativos de HPC. Uma breve descrição do processador Cascade Lake, das opções de BIOS e dos aplicativos de HPC usados neste estudo é fornecida abaixo.
O Cascade Lake é o sucessor da Intel para o Skylake. O processador Cascade Lake suporta até 28 núcleos, seis canais de memória DDR4 com velocidade de até 2933 MT/s. Semelhante ao Skylake, o Cascade Lake suporta energia de vetorização adicional com o conjunto de instruções AVX512, permitindo 32 DP FLOP/ciclo. O Cascade Lake apresenta o
VNNI (Vector Neural Network Instructions, instruções de rede neural vetorial), que acelera o desempenho de cargas de trabalho de IA e DL, como classificação de imagem, reconhecimento de fala, tradução de idioma, detecção de objetos e muito mais. O VNNI também oferece suporte a instruções de 8 bits para acelerar o
desempenho da inferência.
O Cascade Lake inclui
reduções de hardware para algumas
vulnerabilidades de canal lateral. Espera-se que isso possa melhorar o desempenho em cargas de trabalho de armazenamento. Procure estudos futuros do
Innovation Lab.
Como o Skylake e o Cascade Lake são compatíveis com soquetes, os botões de ajuste do processador expostos no BIOS do sistema são semelhantes entre essas gerações de processadores. As seguintes opções de ajuste do BIOS foram exploradas neste estudo, semelhante a um trabalho publicado no
passado no Skylake.
Configurações do processador:
- Pré-busca de linha de cache adjacente: O mecanismo Adjacent Cache-Line Prefetch permite a pré-busca automática de hardware, ele opera sem intervenção do programador. Quando habilitado, ele acomoda duas linhas de cache de 64 bytes em um setor de 128 bytes, independentemente de a linha de cache adicional ter sido solicitada ou não.
- Pré-busca de software: Ele evita a paralisação carregando os dados no cache antes que sejam necessários. Exemplo: Para pré-buscar dados da memória principal para o cache L2 muito antes do uso com uma instrução de pré-busca L2 e, em seguida, pré-buscar dados do cache L2 para o cache L1 pouco antes do uso com uma instrução de prefetch L1. Aqui, quando definido como ativado, o processador fará a pré-busca da linha de cache extra para cada solicitação de memória.
- SNC (Sub-Numa Cluster): Habilitar o SNC é semelhante a dividir o soquete único em dois domínios NUMA, cada um com metade dos núcleos físicos e metade da memória do soquete. Se isso parecer familiar, é semelhante em utilidade à opção Cluster-on-Die que estava disponível nos processadores Intel Xeon E5-2600 v3 e v4. O SNC é implementado de modo diferente do COD, e essas alterações melhoram o acesso remoto ao soquete no Cascade Lake em comparação com as gerações anteriores, que usavam a opção Cluster-on-Die. No nível do sistema operacional, um servidor de soquete duplo com SNC ativado exibirá quatro domínios NUMA. Dois dos domínios estarão mais próximos um do outro (no mesmo soquete) e os outros dois estarão a uma distância maior, atravessando a UPI até o soquete remoto. Isso pode ser visto usando ferramentas do sistema operacional, como: numactl –H e é ilustrado na Figura 1.
Figura 1: Layout de nós NUMA
Perfis do sistema:
Os perfis de sistema são uma meta opção que, por sua vez, define várias opções de BIOS focadas em desempenho e gerenciamento de energia, como
modo Turbo,
Cstate, C1E,
gerenciamento de Pstate, frequência de Uncore etc. Os diferentes perfis de sistema comparados neste estudo incluem:
- Desempenho
- DesempenhoPerWattDAPC
- DesempenhoPerWattOS
Usamos duas referências de desempenho de HPC e dois aplicativos de HPC para entender o impacto dessas opções de BIOS no desempenho do Cascade Lake. As configurações dos aplicativos de servidor e HPC usados para este estudo estão descritas na Tabela 1 e na Tabela 2.
Aplicações |
Domain |
Versão |
Referência |
HPL (High Performance Linpack, Embalagem de Alto Desempenho) |
Computação - Resolver um sistema denso de equações lineares |
Da Intel MKL - Atualização 1 de 2019 |
Tamanho do problema 90%, 92% e 94% da memória total |
Fluxo |
Largura de banda da memória |
5.4 |
Tríade |
WRF |
Pesquisa e Previsão do Tempo |
3.9.1 |
Conus: 2.5km |
ANSYS® Fluente® |
Dinâmica dos Fluidos |
19.2 |
Ice_2m, Combustor_12m,
Aircraft_wing_14m Exhaust_System_33m |
Tabela 1: Aplicativos e referências de desempenho
Componentes |
Detalhes |
Servidor |
Servidor PowerEdge C6420 |
Processador |
CPU Intel® Xeon® Gold 6230 @ 2,1 GHz, 20 núcleos |
Memória |
192 GB a 12 DDR4 de 2933 MT/s e 16GB |
Sistema operacional |
Red Hat Enterprise Linux 7.6Red Hat Enterprise Linux 7.6 |
Kernel |
3.10.0-957.el7.x86_64 |
Compilador |
Intel Parallel Studio Cluster Edition_2019_Update_1 |
Tabela 2 Configuração do servidor
Todos os resultados mostrados aqui são baseados em testes de servidor único; O desempenho no nível do cluster será vinculado pelo desempenho de servidor único. As seguintes métricas foram usadas para comparar o desempenho:
- Stream – pontuação da tríade, conforme relatado pela referência de desempenho de fluxo.
- HPL – GFLOP/segundo.
- Fluent — classificação do Solver conforme relatado pelo Fluent.
- WRF – Etapa de tempo médio computada nos últimos 719 intervalos para Conus 2.5km
Benchmarks e resultados de aplicativos
Abreviações de notação gráfica:
Perfis do sistema:
Perf — Performance OS — PerformancePerWattOS DAPC — PerformancePerWattDAPC
Sub-NUMA Clustering: SNC = 0(SNC = desativado): SNC = 1(SNC = ativado: Formatado como Distribuído em gráficos)
SW – Software Prefetcher: SW = 0 (SW = Desativado): SW = 1 (SW = Ativado)
Figura 2: Linpack de alto desempenho
A Figura 2 compara o resultado da HPL com o tamanho do problema = 90%, ou seja, N = 144476 em diferentes opções de BIOS. O gráfico representa os gigaflops absolutos obtidos durante a execução de HPL em diferentes configurações de BIOS. Esses Gigaflops obtidos são plotados no eixo y, quanto maior melhor.
Abaixo estão as observações do gráfico:
- Menos de 1% de diferença no desempenho de HPL devido à pré-busca de software.
- Nenhum efeito importante do SNC no desempenho da HPL (0,5% melhor com SNC=Disabled).
- O perfil do sistema de desempenho é até 6% melhor em comparação com o sistema operacional e o DAPC.
Figura 3: Fluxo
A Figura 3 compara o resultado de STREAM nas diferentes configurações do BIOS.
O gráfico plota a largura de banda de memória em gigabytes por segundo obtida durante a execução do STREAM Triad. A largura de banda da memória (GB/s) obtida é plotada no eixo Y; quanto maior, melhor. A configuração do BIOS associada a valores específicos de Gigabytes por segundo é plotada no eixo x.
Abaixo estão as observações do gráfico:
- Largura de banda de memória até 3% melhor com SNC=enabled.
- Não há muitos desvios no desempenho devido à pré-busca de software na largura de banda da memória STREAM.
- Sem desvios entre os perfis do sistema.
Figura 4: Largura de banda de memória – SNC
A Figura 4 plota a pontuação de largura de banda da memória Stream Triad em tal configuração. A largura de banda total da memória do sistema é de ~220 GB/s. Quando 20 núcleos em um soquete local acessam a memória local, a largura de banda da memória é de ~109 GB/s — metade da largura de banda total do sistema. Metade disso, ~56 GB/s, é a largura de banda da memória de 10 threads no mesmo nó NUMA acessando sua memória local e em um nó NUMA acessando a memória pertencente ao outro nó NUMA no mesmo soquete. Há uma queda de 42% na largura de banda da memória para ~33 GB/s quando os threads acessam a memória remota através do link QPI no soquete remoto. Isso nos informa que há uma penalidade significativa de largura de banda no modo SNC quando os dados não são locais.
Figura 5: WRF
A Figura 5 compara o resultado do WRF em diferentes opções do BIOS, o conjunto de dados usado é conus2.5km com o arquivo "namelist.input" padrão.
O gráfico plota o tempo médio absoluto em segundos obtido durante a execução do conjunto de dados WRF-conus2.5km em diferentes configurações de BIOS. O tempo médio obtido é plotado no eixo y, quanto menor, melhor. Os perfis relativos associados a valores específicos do intervalo de tempo médio são plotados no eixo x.
Abaixo estão as observações do gráfico:
- 2% de melhora no desempenho com SNC=Ativado.
- Nenhuma diferença de desempenho para Software Prefetch Enabled vs Disabled.
- O perfil Performance é 1% melhor do que os perfis PerformancePerWattDAPC
A Figura 6 até a Figura 9 plota o Solver Rating obtido durante a execução do Fluent com Ice_2m, Combustor_12m, Aircraft_Wing_14m e Exhaust_System_33m conjunto de dados, respectivamente. A classificação do Solver obtida é plotada no eixo y; Quanto maior, melhor. Os perfis relativos associados a valores específicos de Tempo médio são plotados no eixo x.
Abaixo estão as observações gerais dos gráficos acima:
- Desempenho até 4% melhor com SNC=Ativado.
- Nenhum efeito da pré-busca de software no desempenho.
- Desempenho até 2% melhor com o perfil Performance em comparação com perfis DAPC e sistema operacional.
Conclusão
Neste estudo, avaliamos o impacto de diferentes opções de ajuste do BIOS no desempenho ao usar o processador Intel Xeon Gold 6230. Observando o desempenho de diferentes opções de BIOS em diferentes benchmarks e aplicativos, conclui-se o seguinte:
- A pré-busca de software não tem impacto significativo no desempenho dos conjuntos de dados que foram testados. Portanto, recomendamos que o Software Prefetcher permaneça como padrão, ou seja, Enabled
- Com SNC = ativado Aumento de desempenho de 2% a 4% no Fluent e Stream, aproximadamente 1% no WRF em comparação com SNC = Desativado. Assim, recomendamos que o SNC seja habilitado para obter melhor desempenho.
- O perfil Performance é de 2 a 4% melhor do que o PerformancePerWattDAPC e o PerformancePerWattOS. Portanto, recomendamos o perfil de desempenho para HPC.
É recomendável que o Hyper-Threading seja desativado para clusters de HPC de uso geral. Dependendo dos aplicativos usados, o benefício desse recurso deve ser testado e ativado conforme apropriado.
Não abordado neste estudo é um recurso de RAS de memória chamado Correção de dispositivo DRAM duplo adaptativo (ADDDC) que está disponível quando um sistema é configurado com memória que tem organização de DRAM x4 (DIMMs de 32 GB, 64 GB). O ADDDC não está disponível quando um sistema tem DIMMs baseados em x8 (8 GB, 16 GB) e é irrelevante nessas configurações. Para cargas de trabalho de HPC, recomenda-se que o ADDDC seja definido como desativado quando disponível como uma opção ajustável.