Top Banner
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?
41

Mistério ou tecnologia? Paralelismo!

Nov 11, 2014

Download

Documents

Rodrigo Campos

Apresentação realizada no CMG Brasil 2013
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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.