41
Abstract + Agenda Contribuições dos Múltiplos Níveis de Cache e Data Bus Path Lengths Comentários sobre os Conceitos de Paralelismo em PipeLines Que Features auxiliam o aumento do Paralelismo? Qual a influência que se pode esperar dos Hábitos de Programação? O que pode ser feito, para Otimizar Programas e Melhorar a Performance? 1 - 11min – Contribuição dos Caches no Paralelismo Caches em diversos Níveis hierárquicos 2 - 10min – Conceitos de Paralelismo em PipeLines Evolução, desde o /360-91 3 - 6min – Detalhes de Features Tecnológicas: Super Escalar, Virtual Registers, Out Of Order Fetch&Execution 4 - 5min – Exemplos no uso de PipeLines Bons e Maus hábitos de Programação 5 - 8min – O que se pode fazer para otimizar?

Mistério ou tecnologia? Paralelismo!

Embed Size (px)

DESCRIPTION

Apresentação realizada no CMG Brasil 2013

Citation preview

Page 1: Mistério ou tecnologia? Paralelismo!

Abstract + AgendaContribuições dos Múltiplos Níveis de Cache e Data Bus Path LengthsComentários sobre os Conceitos de Paralelismo em PipeLinesQue Features auxiliam o aumento do Paralelismo?Qual a influência que se pode esperar dos Hábitos de Programação?O que pode ser feito, para Otimizar Programas e Melhorar a Performance?

1 - 11min – Contribuição dos Caches no ParalelismoCaches em diversos Níveis hierárquicos

2 - 10min – Conceitos de Paralelismo em PipeLines Evolução, desde o /360-91

3 - 6min – Detalhes de Features Tecnológicas:Super Escalar, Virtual Registers, Out Of Order

Fetch&Execution4 - 5min – Exemplos no uso de PipeLines

Bons e Maus hábitos de Programação5 - 8min – O que se pode fazer para otimizar?

1min Opções de Compiladores [C/C++, PL/I, COBOL]1min Traces e Opções de DeBugging6min CPUMF + HIS dão “feed-back”

6 - 5min – Conclusões, Agradecimentos e Perguntas

Page 2: Mistério ou tecnologia? Paralelismo!

Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.

Mistério ou Tecnologia?Paralelismo!

#1 = Contribuição dos Caches#2 = Múltiplas PipeLines#3 = Quais Features contribuem?#4 = Boas e Más Práticas#5 = Que fazer para otimizar?#6 = Conclusões

Caches emDiversos Níveis!

CódigoAuto

alterável?

Traces?DeBugging?

Page 3: Mistério ou tecnologia? Paralelismo!

Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.

#1 = Contribuição dos Caches

Aplicação:

FORTRAN IV H

COBOLAssembler F

Linkage EditorSORT

Heat TransferData Reduction

Curve Fitting

Integral Evaluation

Matrix Eingenvalue

Differential Equation

Page 4: Mistério ou tecnologia? Paralelismo!

Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.

Chip dos 2 SCs dos zEC12

4 x 48MB=192MBem cada Chip SC

2 x SCs = 384MBem cada Book,

4 Books no CEC= 1,536GB

125 Acessos

Simultâneos!

Measures 28.4 x 23.9 mmCMOS 13S 32nm SOI technology, with 15 layers of metalHas 3.3 billion transistors and 2.1 billion cells for eDRAM

Page 5: Mistério ou tecnologia? Paralelismo!

Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.

Caches nas 6 PUs dos zEC12

L1 I 64KB L1D 96KB L2 I 1MB L2D 1MB L3 48MB L4 384MB CS 3TB

LineSize 256B 6 cada MCM 36 PU por Book144 PU por CEC120 no máximo101 CPUs

Page 6: Mistério ou tecnologia? Paralelismo!

Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.

S/360 Data Paths

zSeries 16 Bytes

S/360-65 8 Bytes

S/360-50 4 Bytes

S/360-40 2 Bytes

S/360-30 1 Byte

LR L %

? ? ?

1 3 8

3 4 13

8 12 37

22 32 100

MicroSeg

Page 7: Mistério ou tecnologia? Paralelismo!

Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.

z9/z990 Data Paths:

4 acessos porMemory Card

Bi-Direcional16 Bytes/ciclo

Protection KeySeparado

M a s . . .

Page 8: Mistério ou tecnologia? Paralelismo!

Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.

#2 = Múltiplas PipeLines

no z196

Page 9: Mistério ou tecnologia? Paralelismo!

Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.

Exemplo de 1.992!

123...

Execução possível graças a:Exemplo para um ES/9000-711: (~ 1.992) - ‘Look Ahead’ de Instr. e DadosSuponha o seguinte conjunto de Instruções, - Pipeline de Instruções (32!)onde as setas representam dependência - Execução Múltipla (9 ALUs!)dos resultados de instruções anteriores: - Execução fora da sequênciaLABEL OPCD OPERANDOS ExUs: CICLO CICLO CICLO CICLOCALCULAR L 5,CAMPO 585

A 5,VALOR 5A5L 9,TESTE 589L 7,PARM 587MH 9,FATOR 4C9S 5,CONSTANT 5B5C 5,LIMITE 595

CONTINUA EQU *

Resultado: CORRETO, executando 7 Instruções em apenas 4 CiclosNotar: Instruções L 9,TESTE e L 7,PARM executadas antes da anterior: A 5,VALORAs 3 Instruções executadas no primeiro Ciclo necessitaram 3 ExUs, uma para cadaIsto só foi possível porque todas as instruções e seus dados estavam disponíveis

Page 10: Mistério ou tecnologia? Paralelismo!

Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.

Sequenciamento de 7 e 9 Instruções

Ciclos:

Page 11: Mistério ou tecnologia? Paralelismo!

Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.

Comparando z10, z196 e zEC12

Page 12: Mistério ou tecnologia? Paralelismo!

Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.

DUPLA

DUPLA

BHTPHTBTB

DAT+

TLB2

L1 I 64KB L1D 128KB L2 1,5MB L3 24MB L4 192MB

L1 I 64KB=256L1D 128KB=512

CACHE I+ TLB1I

CACHE D+ TLB1D

3 54

Execution Units do z196

Page 13: Mistério ou tecnologia? Paralelismo!

Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.

Execution Units do zEC12

CACHE I+ TLB1I CACHE D

+ TLB1D

3 73

DAT+

TLB2

BHTPHTBTB

DUPLA

DUPLA

16KB

L3 48MB L4 384MB

L1 I 64KB= 256 L1D 96KB= 384

L2 I 1MB=4.096 L2D 1MB=4.096

Page 14: Mistério ou tecnologia? Paralelismo!

Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.

#3 = Quais Featurescontribuem?

0 – Multiple Queues1 – Virtual Registers2 – 1MB Pages/Frames3 – 2GB Pages/Frames4 – TLB1I e TLB1D com Selective Purge5 – TLB2 para os demais Caches6 – Non Quiescing SSKE7 – Interlocked Access8 – High Word Facility9 – Transactional Execution

Page 15: Mistério ou tecnologia? Paralelismo!

IFB XUTLB

ICM

ISU

IDU

DUPLA DUPLARU

IFB Instruction Fetch & Branch prediction

ICM Instruction Cache & Merge

IDU Instruction Decode Unit

ISU Instruction Sequence Unit

FXU FiXed-point Unit

BFU Binary & Hex Floating-point Unit

DU Decimal Unit

LSU Load-Store Unit for Operands

XU Translation Unit (DAT)

RU Recovery Unit

Unidades Funcionais dos z196Paralelismo para até 5 Instruções!

CPUMF

3 Decoded5 Finished

Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.

Glossário:

Page 16: Mistério ou tecnologia? Paralelismo!

Unidades Funcionais dos zEC12Paralelismo para até 7 Instruções!

CPUMF

3 Decoded7 Finished

Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.

Page 17: Mistério ou tecnologia? Paralelismo!

Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.

#4 = Boas e Más PráticasNão usar as Boas significa…

. . .DO;. . .IF ENDFILE THEN DO; . . .END;. . .IF ERRO THEN DO;. . .END;. . .IF RARAMENTE THEN DO;. . .END;. . .WHILE ( NOT ( FIM ) );. . .

. . .IF TIPO=1001 THEN DO;. . .END;. . .IF TIPO=2193 THEN DO;. . .END;. . .IF TIPO=1001 THEN DO;. . .END;. . .ELSE DO; PUT ‘REGISTRO NÃO PROCESSADO’; PUT ‘TIPO INVÁLIDO, FOI IGNORADO’;END;. . .

Page 18: Mistério ou tecnologia? Paralelismo!

Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.

Código Auto Alterável!

The L2 directory maintains the consistency between the L1 caches. If, for example, a cache line is owned by both I-cache and D-cache and a store operation is executed, the D-cache requests exclusive ownership of the cache line from the L2. Before the L2 grants exclusivity, the L2 sends an invalidation request to the I-cache so that stores into the instruction stream are recognized. Once the store is completed, the updated instruction text can be refetched by the I-cache causing the D-cache to lose exclusivity again.

MVI NOP+1,X’F0’ OPEN (MVI PARMLIST,X’??’)MVI NOP+1,X’00’ LOAD SVC 8SVC 122 x’7A’

ST R,*+4 ! ! ! ORG CSECT+N*256

Page 19: Mistério ou tecnologia? Paralelismo!

Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.

#5 = O que fazer para otimizar?

Aproximar: Códigos VariáveisReduzir: Jumps Calls SVCsEliminar: Traces DeBugging

Algoritmos!PrefetchData?

Page 20: Mistério ou tecnologia? Paralelismo!

Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.

Exemplo de Exemplo de CPUMF + HIS CPUMF + HIS z196z196

Supervisor e Problem States

VERTICAL HIGHs

VERTICAL LOWs

ZIIPs

CICLE TIME das z196: 0,192.012 ns

MELHOR= 12% 12% 11% 11% 10% 10% Mínimo: 4,31 0,83 5,69 1,09 4,91 0,94 Média: 4,88 0,94 6,38 1,22 5,47 1,05 Máximo: 5,61 1,08 7,58 1,45 6,06 1,16 PIOR= 15% 15% 19% 19% 11% 11%

Page 21: Mistério ou tecnologia? Paralelismo!

Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.

Exemplo de Exemplo de CPUMF + HIS CPUMF + HIS z10z10Instruction e Data Cache Hit%

Page 22: Mistério ou tecnologia? Paralelismo!

Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.

#6 - Conclusões:

• Os Limites Físicos impõem restrições

• Opções de Compiladores . . .• Otimizar Códigos, aproveitando as vantagens já existentes!• Objetivar “Desperdício ZERO” !

4,54 3,84 20 30cm

CycleTime ns GHzz196 0,192 5,208 Freqüência: > 5,6% Ciclo: < 7,3%zEC120,178 5,5 Capacidade > 50%

3,64

Page 23: Mistério ou tecnologia? Paralelismo!

Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.

Perguntas ? ? ?

Obrigado !

[email protected]

Boas Otimizações!

Todos os Manuais e RedBooks: IBMCursos MFTS00 e MFTS30 : MAFFEI

Page 24: Mistério ou tecnologia? Paralelismo!

Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.

Se necessário exibir, estes dados mostram que, não necessariamente, os maiores valores individuais apontam a PU mais “produtiva” ou mais rápida.

Page 25: Mistério ou tecnologia? Paralelismo!

Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.

Suportewww.amd.com

Notar a semelhança Tecnológicano agrupamento das Unidades e apresença dos Caches L2 no chip.

Page 26: Mistério ou tecnologia? Paralelismo!

Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.

Suporte© 1998 Advanced Micro Devices, Inc. All rights reserved.

DUPLA Ponto Fixo

Notar a distribuição das Unidades, seusequenciamento e os TLBs em cada Cache.

Page 27: Mistério ou tecnologia? Paralelismo!

Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.

Suporte© 1998 Advanced Micro Devices, Inc. All rights reserved.

AMD-K6(TM) 3D Processor Simulation CD-ROM1.0 License Agreement---------------------------------------------------------------------© Copyright 1997, 1998, Advanced Micro Devices, Inc.Advanced Micro Devices, Inc. ("AMD") hereby grants you permission to use, copy, and distribute documents, related graphics, and software delivered from this AMD CD-ROM ("Materials") provided that you (1) include both the above copyright notice and this permission notice in all copies; (2) do not modify the Materials; (3) use the Materials for non-commercial purposes within your organization only; and (4) with respect to software Materials, do not decompile, reverse engineer, or disassemble such software.

Page 28: Mistério ou tecnologia? Paralelismo!

Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.

Suporte

Ciclo 00: Início de um “Stream” [16 bytes] de Instruções (realmente, sobreposto à execução do “Stream” anterior).

Notar a disposição das várias Unidades: Instruction Buffer, Decoders, Scheduler e das Execution Units: Load, Store, Branch, Floating e Fixed Point, todas trabalhando em Paralelo.

Page 29: Mistério ou tecnologia? Paralelismo!

Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.

Suporte

Ciclo 01: O Instruction Buffer recebe um novo “Stream” de 16 bytes.

[Pretende-se esclarecer que há décadas que não se executa mais uma Instrução por vez, mas sim, ativa-se em paralelo vários Circuitos “dedicados”: Load, Store, Branch, Ponto Fixo e Flutuante]

Page 30: Mistério ou tecnologia? Paralelismo!

Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.

Suporte

Ciclo 02: As duas primeiras Instruções são Decodificadas em 2 Micro Operações e mais 2 NOPs, porque o Decodificador sempre

produz quatro Ops (Op Quad).

As Instruções 3 e 4 não puderam ser Decodificadas porque ambos Decodificadores Short estavam ‘ocupados’ com as Instruções 1 e 2.

Page 31: Mistério ou tecnologia? Paralelismo!

Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.

Suporte

Ciclo 03: Transferido o primeiro Op Quad para o Scheduler, a Instrução 3 resulta em

2 Ops e a Instrução 4

em mais um Op e um NOP.

NOPs são sempre terminados no Scheduler e não são “executados”.

Page 32: Mistério ou tecnologia? Paralelismo!

Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.

Suporte

Ciclo 04: O Op Quad vem para o Scheduler e novo Op Quad é formado com as Instruções 5 e 6 +NOP.

O Scheduler “agendou” a Instrução 1 para a Unidade X de Registrador e a Instrução 2 para a obtenção do Operando na Load Unit.

Page 33: Mistério ou tecnologia? Paralelismo!

Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.

Suporte

Ciclo 05: O Op Quad vem para o Scheduler e novo Op Quad é formado com as Instruções 7 e 8 +NOP, esvaziando o I-Buffer, que já se prepara para receber novo “Stream”.Oito Instruções (16 bytes) Decodificadas em 5 Ciclos.O Scheduler “agendou” a Instrução 3 para a Unidade X de Registrador e a mesma Instrução 3 para a obtenção do Operando na Load Unit.

Page 34: Mistério ou tecnologia? Paralelismo!

Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.

Suporte

Ciclo 06: O último Op Quad vem para o Scheduler , que tem a capacidade de receber

6 Op Quads (24 Op). Terminada a execução da Instrução 1.

O Scheduler “agendou” a Instrução 4 para a Unidade X de Registrador, a Instrução 5 para a Unidade Y de Registrador e a mesma Instrução 5 para a obtenção do Operando na Load Unit.

Page 35: Mistério ou tecnologia? Paralelismo!

Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.

Suporte

Ciclo 07: Terminada a execução da Instrução 2, mas a Instrução 4 não pode ser executada, porque depende do resultado da Instrução 3, ainda obtendo Operando, então, retorna ao Scheduler, que “agendou” a Instrução 3 para a Unidade X de Registrador, a Instrução 6 para a Unidade Y de Registrador e a Instrução 7 para a obtenção do Operando na Load Unit.

Page 36: Mistério ou tecnologia? Paralelismo!

Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.

Suporte

Ciclo 08: Encaminhadas a Instrução 3 para a Unidade X de Inteiros e a Instrução 6 para a Unidade Y de Inteiros, permitindo “agendar” novamente a Instrução 4 (Reg X), a Instrução 5 (Reg Y) e ainda a Instrução 8 para a obtenção do Operando na Load Unit.

[Observar que foi “removida” no Scheduler a Instrução 3, ‘liberando” a 4]

Page 37: Mistério ou tecnologia? Paralelismo!

Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.

Suporte

Ciclo 09: Terminadas as execuções das Instruções 3 e 6, esta Fóra de Ordem!

A Instrução 8 (última deste “Stream”) é agendada para a Unidade Reg X, enquanto processam em paralelo as Instruções 4, 5 e 7.

Page 38: Mistério ou tecnologia? Paralelismo!

Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.

Suporte

Ciclo 10: Terminadas as execuções das Instruções 4, 5 e 7.

Mas a Instrução 8 não conseguiu completar no Reg X, porque seu Operando não veio a tempo (pode ter havido um Cache Miss), então retorna ao Scheduler!

Page 39: Mistério ou tecnologia? Paralelismo!

Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.

Suporte

Ciclo 11: Obtido o Operando, a Instrução 8 é novamente “agendada” para o Reg X.

Page 40: Mistério ou tecnologia? Paralelismo!

Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.

Suporte

Ciclo 12: Terminada a execução da Instrução 8.

As 8 Instruções foram Decodificadas em 5 Ciclos e foram Executadas nos 7 Ciclos seguintes, apesar da ocorrência de dependências e misses.

Page 41: Mistério ou tecnologia? Paralelismo!

Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.

Suporte

Ciclo 13: Neste último Ciclo todas as Instruções foram “Completadas” e o Scheduler é “esvaziado” (na realidade, esteve sendo completado com Instruções [Op Quads] do próximo “Stream”, em todos os Ciclos anteriores.