Impacto do cache L3 no desempenho - vale um sistema de processador duplo?

3

Estarei comprando um novo sistema high-end, e gostaria de ter uma melhor noção de se um sistema Xeon de processador duplo (estou olhando para o novo Xeon E5-2687W topo de linha) poderia, realisticamente , fornece uma melhoria de desempenho notável devido à duplicação do cache L3 (20 MB por CPU).

(Isto é, além da vantagem adicional ocasionais devido à duplicação de núcleos e RAM.)

Meu cenário de uso é que tenho muitos aplicativos em segundo plano em execução a qualquer momento - 3 ou 4 aplicativos de compactação / backup de dados, um servidor web de baixo impacto, uma ou duas máquinas virtuais em um determinado momento ), e talvez 20 programas utilitários que utilizam uma porção notável (mas pequena) dos núcleos da CPU. No total, quando não estou usando ativamente o computador, cerca de 25% da energia total da CPU é utilizada no meu sistema i7-970 de seis núcleos (12 threads).

Quando estou fazendo um trabalho de rotina, a utilização da CPU geralmente excede 50% e ocasionalmente atinge 75% -80%.

O Xeon E5-2687W não é apenas um i7 de segunda geração (portanto, deve melhorar o desempenho por esse motivo), mas também possui 8 núcleos (16 segmentos), em vez de 6 núcleos. Por esse motivo, espero encontrar o intervalo de 75% da CPU com menos frequência. No entanto, a capacidade de duplicar os núcleos e a RAM é uma consideração.

No entanto, no final, acredito que esta decisão se resume a se a duplicação do cache L3 fornecerá uma melhora notável. Existem muitos benchmarks e muita discussão sobre o poder da CPU. No entanto, acho muito pouca discussão sobre a utilização do cache L3 e como os aumentos no cache L3 (como dobrá-lo com processadores dual) afetam o desempenho.

Por exemplo: Se houver apenas dois processos em execução, mas cada um se beneficia de um grande cache L3 (como pode ser o caso de processos em segundo plano que analisam frequentemente o sistema de arquivos), talvez o desempenho do sistema pode melhorar notavelmente com CPUs duplas - mesmo que apenas um único núcleo esteja ativo em cada CPU - devido a cada processo ter o dobro do cache L3 efetivo.

Espero que alguém tenha uma noção dos benefícios de aumentar (ou dobrar) o tamanho do cache L3.

Nota: a CPU que estou considerando (o Xeon E5-2687W) tem 20 MB de cache L3, então um sistema com CPU dupla teria 40 MB de cache L3.

    
por Dan Nissenbaum 16.04.2012 / 09:59

3 respostas

4

Como sempre, com perguntas sobre cache, a resposta seria "depende inteiramente da sua carga de trabalho". O cache é apenas de uso se seus processos em execução estiverem gastando uma quantidade significativa de tempo acessando a memória e exibindo uma localidade notável de referência para endereçamento de memória (e não satisfeitos com os caches L1 / L2 menores presentes por núcleo para este assunto).

Ter um grande número de processos em execução em diferentes encadeamentos aumenta as chances de debulhar o cache compartilhado e, assim, diminui os ganhos de desempenho que, de outra forma, poderiam ter sido obtidos. Esta é também a razão para aumentar o tamanho do cache com um aumento na contagem de núcleos - quanto mais threads competidores em memória você estiver executando, maior o cache compartilhado provavelmente precisará ser para ser útil.

Existe um artigo antigo de Tom's Hardware que compara dois chips P4 antigos com e sem cache L3 para várias cargas de trabalho de renderização / gráficas. Os números são lixo, assim como todo o benchmark, mas contém uma boa explicação da arquitetura do cache em geral e do caching L3 em particular.

A linha inferior: você provavelmente não notaria a diferença, mas se você precisa dos números exatos, você teria que comprar ambas as CPUs e executar sua carga de trabalho em ambas para comparar tempos de execução.

    
por 16.04.2012 / 10:26
2

As pessoas que dizem "um aumento de apenas 20 MB no cache L3" simplesmente não sabem do que estão falando. Um aumento sensato no tamanho do cache para uma determinada arquitetura provavelmente causará um aumento sensível no desempenho, mesmo com uma carga média. Isso é mais verdadeiro quando você pensa sobre a arquitetura turbo boost implementada nos processadores Sandy Bridge e Ivy Bridge.

Eu tive a chance de experimentar isso pessoalmente em vários estágios diferentes da arquitetura x86 / x86_64: Sempron vs Athlon, Celeron vs Pentium 4, Pentium4 vs Athlon, Pentium4-m vs Pentium-m, Pentium 4 vs Xeon, i7 vs Xeon E5. Sempre que o cache é maior (geralmente duplicado ou quase duplicado).

Se o custo de dobrar o cache é acessível, depende de você. Mas o Xeon é melhor para estabilidade, já que eles suportam memória ECC e essas tecnologias, que são obviamente obrigatórias em certas aplicações (como simulações 3D para fundição de alumínio, que é o meu caso).

    
por 13.01.2013 / 13:23
1

A partir da sua descrição do que você faz e de como o seu sistema atual lida com ele, só posso imaginar por que você quer substituí-lo. Na melhor das hipóteses, o cache L3 daria um impulso insignificante, mas com uma grande despesa, mas no caso de uso descrito, você não pode esperar ver qualquer diferença resultante de um aumento de apenas 20MB no cache L3.

    
por 16.04.2012 / 12:20

Tags