Um breve estudo da adição de um quarto nível de cache em processadores multicore
Um breve estudo da adição de um quarto
nível de cache em processadores multicore
paralela e
Carlos Eduardo Benevides Bezerra
Orientador: Prof. Dr. Cláudio F. R. Geyer
Porto Alegre, 4 de junho de 2009
Carlos Eduardo Benevides Bezerra
1 / 18
Workshop de Processamento Paralelo e Distribuído
Um breve estudo da adição de um quarto nível de cache em processadores multicore
Sumário

Contexto

Motivação

Proposta

Modelagem

Simulação

Resultados

Conclusões
Carlos Eduardo Benevides Bezerra
2 / 18
Workshop de Processamento Paralelo e Distribuído
Um breve estudo da adição de um quarto nível de cache em processadores multicore
Contexto

Memórias cache aceleram a recuperação de dados da memória

Aplicações cada vez mais pesadas, com maior volume de dados

Maior memória principal para comportar os dados destas aplicações

Processadores com maior freqüência (GHz)

Maior número de cores (1, 2, 3, 4, 6, 8 ... Tera-Scale)

As caches devem aumentar seu tamanho proporcionalmente
Carlos Eduardo Benevides Bezerra
3 / 18
Workshop de Processamento Paralelo e Distribuído
Um breve estudo da adição de um quarto nível de cache em processadores multicore
Intel Dunnington (Xeon multicore)
•
Dunnington (Xeon) é uma arquitetura multicore
•
Cada memória L2 é compartilhada por um par de cores
–
–
–
–
–
•
Disponibiliza dados para ambos os cores (mais espaço)
Pode economizar banda do barramento
Menor esforço com manutenção de coerência
Utiliza “Advanced Smart Cache”
Porém, cache maior implica tempo de acesso maior
Uma memória cache L3 é compartilhada por todos os cores
Carlos Eduardo Benevides Bezerra
4 / 18
Workshop de Processamento Paralelo e Distribuído
Um breve estudo da adição de um quarto nível de cache em processadores multicore
Motivação

Pede-se mais memória cache, porém:




Memória maior implica maior tempo de acesso
Perdas devido à contenção pelo acesso à cache, quando
compartilhada por muitos cores
Adicionar memória cache custa caro
Podem ser adicionadas memórias mais distantes do núcleo




São acessadas com menor freqüência
O problema da contenção é reduzido
O tempo de acesso maior gera um menor impacto sobre o
desempenho
Ao invés de aumentar o tamanho da cache L<X>, pode ser
adicionado uma cache L<X+1>
Carlos Eduardo Benevides Bezerra
5 / 18
Workshop de Processamento Paralelo e Distribuído
Um breve estudo da adição de um quarto nível de cache em processadores multicore
Proposta

Baseando-se na arquitetura Dunnington, pretende-se
investigar:

Benefício de se utilizar uma memória cache L3 grande (32 MB)

Benefício de se dividir a L3 em dois níveis (L3 e L4: 8 + 8 + 16)

Ganho ao entrelaçar a hierarquia de cache

Diminuir a maior profundidade mínima de cache que qualquer par de cores
precisa buscar para compartilhar memória
Carlos Eduardo Benevides Bezerra
6 / 18
Workshop de Processamento Paralelo e Distribuído
Um breve estudo da adição de um quarto nível de cache em processadores multicore
Modelagem – L123
• Arquitetura L123
– Modelada sobre o SunFire
– 3 níveis de memória cache
– L2 compartilhada por cada par de
cores
– L3 compartilhada por todos
• Parâmeros
– Memória principal: 1 GB
– L1:
• Instruções: 32 KB
• Dados: 32 KB
• Latência: 2 ciclos
– L2:
• 1 MB
• Latência: 5 ciclos
– L3
• 32 MB
• Latência: 30 ciclos
Carlos Eduardo Benevides Bezerra
7 / 18
Workshop de Processamento Paralelo e Distribuído
Um breve estudo da adição de um quarto nível de cache em processadores multicore
Modelagem – L1234
• Arquitetura L1234
– 4 níveis de memória cache
– L2 compartilhada por cada par de cores
– L3 compartilhada por cada 4 cores (a
cada 2 caches L2)
– L4 compartilhada por todos
• Parâmeros
– Memória principal: 1 GB
– L1:
• Instruções: 32 KB
• Dados: 32 KB
• Latência: 2 ciclos
– L2:
• 1 MB
• Latência: 5 ciclos
– L3
• 8 MB
• Latência: 15 ciclos
– L4
Simular:
Tamanho menor
Menor contenção
• 16 MB
• Latência: 30 ciclos Tamanho menor
Maior distância dos cores
Carlos Eduardo Benevides Bezerra
8 / 18
Workshop de Processamento Paralelo e Distribuído
Um breve estudo da adição de um quarto nível de cache em processadores multicore
Modelagem – InterleavedL4
• Arquitetura InterleavedL4
–
–
–
–
4 níveis de memória cache
L2 compartilhada por cada par de cores
L3 compartilhada por cada 4 cores
L4 compartilhada por todos
• Parâmeros
– Memória principal: 1 GB
– L1:
• Instruções: 32 KB
• Dados: 32 KB
• Latência: 2 ciclos
– L2:
• 1 MB
• Latência: 5 ciclos
– L3
• 8 MB
• Latência: 20 ciclos
– L4
• 16 MB
• Latência: 30 ciclos
Carlos Eduardo Benevides Bezerra
Simular:
Tamanho menor
Menor contenção
Busca em 2 caches L3
Tamanho menor
Maior distância dos cores
9 / 18
Workshop de Processamento Paralelo e Distribuído
Um breve estudo da adição de um quarto nível de cache em processadores multicore
Resultados

Observações:

Repetições 3 (3reps * ~3horas * 3arqs * 2programas = ~54 horas, ou 18 simulações)

Execuções em seqüência (não a partir do mesmo ponto)

Desvios padrões do número de ciclos: < 1’000 (0,0001%)

Desvios padrões do número de steps: < 1’000’000 (0,1%)
Carlos Eduardo Benevides Bezerra
10 / 18
Workshop de Processamento Paralelo e Distribuído
Um breve estudo da adição de um quarto nível de cache em processadores multicore
Resultados
Ciclos - BT
2921000000
2920000000
2919000000
2918000000
2917000000
2916000000
2915000000
2914000000
2913000000
L123
Carlos Eduardo Benevides Bezerra
L1234
11 / 18
L4Interleaved
Workshop de Processamento Paralelo e Distribuído
Um breve estudo da adição de um quarto nível de cache em processadores multicore
Resultados
steps - BT
2910000000
2905000000
2900000000
2895000000
2890000000
2885000000
2880000000
2875000000
L123
Carlos Eduardo Benevides Bezerra
L1234
12 / 18
L4Interleaved
Workshop de Processamento Paralelo e Distribuído
Um breve estudo da adição de um quarto nível de cache em processadores multicore
Resultados
Ciclos - CG
601000000
600500000
600000000
599500000
599000000
598500000
598000000
597500000
L123
Carlos Eduardo Benevides Bezerra
L1234
13 / 18
L4Interleaved
Workshop de Processamento Paralelo e Distribuído
Um breve estudo da adição de um quarto nível de cache em processadores multicore
Resultados
steps - CG
512500000
512000000
511500000
511000000
510500000
510000000
509500000
509000000
508500000
508000000
L123
Carlos Eduardo Benevides Bezerra
L1234
14 / 18
L4Interleaved
Workshop de Processamento Paralelo e Distribuído
Um breve estudo da adição de um quarto nível de cache em processadores multicore
Resultados
Cache miss - BT
1,50%
1,30%
1,10%
0,90%
L3 0
0,70%
L3 1
L4
0,50%
0,30%
0,10%
-0,10%
L123
Carlos Eduardo Benevides Bezerra
L1234
15 / 18
L4Interleaved
Workshop de Processamento Paralelo e Distribuído
Um breve estudo da adição de um quarto nível de cache em processadores multicore
Resultados
Cache miss - CG
1,50%
1,30%
1,10%
0,90%
L3 0
0,70%
L3 1
L4
0,50%
0,30%
0,10%
-0,10%
L123
Carlos Eduardo Benevides Bezerra
L1234
16 / 18
L4Interleaved
Workshop de Processamento Paralelo e Distribuído
Um breve estudo da adição de um quarto nível de cache em processadores multicore
Conclusões






Ao se diminuir o tempo de acesso à L3, mesmo não sendo compartilhada e com espaço
menor, o tempo de execução diminuiu
A taxa de cache miss das L3, apesar de ser maior, foi compensada pelo tempo de acesso
menor
Provavelmente, o ganho se deve muito mais à redução do tempo de acesso às L3
O maior tempo de execução da L4Interleaved provavelmente deve-se ao maior tempo de
acesso às L3
A cache L4 teve cache miss em torno de 30% a 70%. Uma explicação seria o
compartilhamento de 16 MB entre os 8 cores (contra 32 MB de L3 na arquitetura L123)
Trabalhos futuros:

Executar a mesma simulação da L123, com L3 de 16 MB, e medir a taxa de cache miss

Utilizar uma L4 de 32 MB
Carlos Eduardo Benevides Bezerra
17 / 18
Workshop de Processamento Paralelo e Distribuído
Um breve estudo da adição de um quarto nível de cache em processadores multicore
Dúvidas/perguntas
Obrigado!
Perguntas?
Carlos Eduardo Benevides Bezerra
18 / 18
Workshop de Processamento Paralelo e Distribuído
Download

Motivação