Em 11 de julho de 2017, a Intel lançou oficialmente sua nova família de processadores escaláveis Intel Xeon de 14nm (Skylake-SP) de processadores de servidor. Esta família substitui a geração anterior de processadores Intel Xeon E7 v4 de 14nm e Intel Xeon E5 v4 de 14nm (Broadwell-EX e Broadwell-EP).
Marca e preços
A Intel chama essa família geral de uma nova “plataforma convergente” que é segmentada em quatro linhas de produtos distintas chamadas Intel Xeon Platinum, Intel Xeon Gold, Intel Xeon Silver e Intel Xeon Bronze. Para uso do SQL Server, apenas as linhas Platinum e Gold fazem sentido se você estiver preocupado em obter o melhor desempenho para cada uma de suas licenças de núcleo de processador do SQL Server.
Ao contrário dos processadores Xeon da geração anterior, os novos processadores Xeon Platinum têm até 28 núcleos físicos e podem ser usados em qualquer servidor de contagem de soquetes, seja uma máquina de dois, quatro ou oito soquetes. Os processadores Xeon Gold possuem até 22 núcleos físicos e podem ser usados em máquinas de dois ou quatro soquetes.
A Intel está usando uma nova marca de produto e convenção de numeração que é detalhada na Figura 1. Ao contrário dos novos processadores AMD EPYC, a Intel está fazendo muita segmentação de produtos orientada para marketing e lucratividade nesta linha, o que torna mais difícil de entender e torna mais difícil escolher o processador certo para sua carga de trabalho.
Figura 1:Convenção de numeração de produto do processador escalável Intel Xeon
Um excelente exemplo dessa segmentação prejudicial de produtos são os processadores "M" SKU (modelos de processador com sufixo M) que suportam 1,5 TB de memória por soquete, em oposição a 768 GB de memória por soquete para os modelos não "M" de SKU. A Intel cobra cerca de US$ 3.000,00 de prêmio (por processador) por esse suporte extra de memória, o que é um aumento bastante grande, especialmente para os processadores de custo mais baixo. O processador Intel Xeon Gold 6134 de oito núcleos custa US$ 2.214,00 cada, enquanto o processador Intel Xeon Gold 6134M de oito núcleos custa US$ 5.217,00 cada. Todas as outras especificações (e desempenho) são idênticas para esses dois processadores. Para o uso do SQL Server, pode fazer todo o sentido pagar esse prêmio para obter o dobro da capacidade de memória por soquete (especialmente considerando os custos de licença do SQL Server e os custos gerais de memória), mas não gosto do fato de a Intel estar fazendo algum preço cavando aqui.
Mudanças de arquitetura
O Skylake-SP tem uma arquitetura de cache diferente que muda de um modelo distribuído compartilhado usado no Broadwell-EP/EX para um modelo local privado usado no Skylake-SP. Ainda não se sabe como essa alteração afetará as cargas de trabalho do SQL Server.
No Broadwell-EP/EX, cada núcleo físico tinha um cache L2 privado de 256 KB, enquanto todos os núcleos compartilhavam um cache L3 maior que podia chegar a 60 MB (normalmente 2,5 MB/núcleo). Todas as linhas no cache L2 para cada núcleo também estavam presentes no cache L3 compartilhado e inclusivo.
No Skylake-SP, cada núcleo físico possui um cache L2 privado de 1 MB, enquanto todos os núcleos compartilham um cache L3 maior que pode chegar a 38,5 MB (normalmente 1,375 MB/núcleo). Todas as linhas no cache L2 para cada núcleo podem não estar presente no cache L3 compartilhado não inclusivo.
Um cache L2 maior aumenta a taxa de acertos do cache L2, resultando em menor latência de memória efetiva e menor demanda no cache L3 e na interconexão de malha. O cache L2 é normalmente cerca de 4X mais rápido que o cache L3 em Skylake-SP. A Figura 2 detalha as novas mudanças na arquitetura de cache no Skylake-SP.
Figura 2:comparando arquiteturas de cache
Outra nova melhoria arquitetônica é o Intel Ultra Path Interconnect (UPI), que substitui a geração anterior Intel Quick Path Interconnect (QPI). Intel UPI é uma interconexão coerente para sistemas que contêm vários processadores em um único espaço de endereço compartilhado. Os processadores Intel Xeon que suportam Intel UPI fornecem dois ou três links Intel UPI para conexão com outros processadores Intel Xeon usando um caminho de alta velocidade e baixa latência para os outros soquetes da CPU. Intel UPI tem uma taxa de dados máxima de 10,4 GT/s (giga-transferências/segundo) em comparação com uma taxa de dados máxima de 9,6 GT/s para o Intel QPI usado nos processadores Broadwell-EP/EX mais rápidos.
Outro novo recurso importante no Skylake-SP é a inclusão do suporte AVX-512, que permite que vetores de largura de 512 bits sejam calculados, o que melhora muito a velocidade em comparação com conjuntos de instruções vetoriais mais antigos, como AVX2, AVX e SSE. Esses conjuntos de instruções são normalmente usados para coisas como compactação e criptografia.
O AVX-512 também tem uma eficiência de energia muito melhor em termos de GFLOPS/Watt e GFLOPS/GHz em comparação com os conjuntos de instruções mais antigos, para que a Intel não precise reduzir a velocidade do clock de todos os núcleos se o código AVX estiver sendo executado em qualquer um dos os núcleos e eles também podem ter cada núcleo executado em uma velocidade diferente, dependendo do tipo de código AVX que está sendo executado nesse núcleo.
Suporte de hardware do SQL Server
No SQL Server 2016, a Microsoft introduziu suporte para instruções SSE e AVX com suporte da CPU para melhorar o desempenho do agrupamento de linhas em índices Columnstore e inserções em massa. Eles também adicionaram suporte de hardware para criptografia AES-NI. Eu escrevi sobre como esse novo suporte de software para hardware específico foi mapeado para diferentes gerações de processadores aqui. Felizmente, a Microsoft estenderá esse tipo de código para cobrir o suporte ao AVX-512 no SQL Server 2017.
Outro novo recurso no Skylake-SP é o suporte Intel Speed Shift, que permite que os núcleos do processador alterem seus estados p e c com muito mais eficiência (o que permite que os núcleos do processador “acelerem” muito mais rapidamente). Esse recurso se baseia no Hardware Power Management (HWPM) introduzido no Broadwell com um novo modo que permite que o HWPM e o sistema operacional trabalhem juntos, chamado modo nativo. O modo nativo tem suporte no kernel Linux 4.10 e no Windows Server 2016.
De acordo com alguns dos primeiros benchmarks que vi, esses processadores Skylake-SP têm cerca de 10% de melhoria de IPC em relação aos núcleos Broadwell-EP rodando na mesma velocidade de clock. O software que tira proveito de novos recursos específicos (como AVX-512 e FMA) pode obter aumentos de desempenho muito maiores.
Em relação às cargas de trabalho OLTP do SQL Server 2017, em 27 de junho de 2017, a Lenovo apresentou um resultado de benchmark TPC-E para um servidor de dois soquetes Lenovo ThinkSystem SR650, com dois processadores Intel Xeon Platinum 8180 de 28 núcleos. A pontuação bruta para este sistema foi de 6.598,36. Dividindo essa pontuação por 56 núcleos físicos, obtemos uma pontuação/núcleo de 117,83 (que é uma medida do desempenho da CPU single-thread).
Para efeito de comparação, a Lenovo apresentou um resultado de benchmark TPC-E para um servidor de dois soquetes Lenovo System x3650 M5 com dois processadores Intel Xeon E5-2699 v4 de 22 núcleos. A pontuação bruta para este sistema foi 4938,14. Dividindo essa pontuação por 44 núcleos físicos, obtemos uma pontuação/núcleo de 112,23. O sistema Skylake-SP é cerca de 5% mais rápido para desempenho de thread único aqui, mas lembre-se de que isso é para uma versão de pré-lançamento do SQL Server 2017.
Se você quiser uma visão ainda mais detalhada das mudanças e melhorias específicas na família de processadores escaláveis Intel Xeon em comparação com os processadores Xeon da geração anterior, você pode ler sobre isso aqui.