• Nenhum resultado encontrado

Determine number of machine instructions executed. Determine how fast instructions are executed. Processor and memory system

N/A
N/A
Protected

Academic year: 2021

Share "Determine number of machine instructions executed. Determine how fast instructions are executed. Processor and memory system"

Copied!
11
0
0

Texto

(1)

AJProença,Sistemas de Computação e Desempenho, MInf, UMinho, 2009/101

Sistemasde Computaçãoe Desempenho

M e s tr a d o e m I n fo rm á ti c a

2009/10

A .J .P ro e n ç a T e m a R e v is it a n d o o s S is te m a s d e C o m p u ta ç ã o

(2) AJProença,Sistemas de Computação e Desempenho, MInf, UMinho, 2009/102Chapter 1 —Computer Abstractions and Technology —2

Understanding Performance

• A lg o ri th m – D e te rm in e s n u m b e r o f o p e ra ti o n s e x e c u te d • P ro g ra m m in g l a n g u a g e , c o m p ile r, a rc h it e c tu re – D e te rm in e n u m b e r o f m a c h in e i n s tr u c ti o n s e x e c u te d p e r o p e ra ti o n • P ro c e s s o r a n d m e m o ry s y s te m – D e te rm in e h o w f a s t in s tr u c ti o n s a re e x e c u te d • I/ O s y s te m ( in c lu d in g O S ) – D e te rm in e s h o w f a s t I/ O o p e ra ti o n s a re e x e c u te d

AJProença,Sistemas de Computação e Desempenho, MInf, UMinho, 2009/103

Análise do desempenho em Sistemas de Computação: oportunidades para optimizar na arquitectura

O p ti m iz a ç ã o d o d e s e m p e n h o ( n o C P U ) – c o m i n tr o d u ç ã o d e p a ra le li s m o

•ao nível do processo(sistemas concorrentes/paralelos/distribuídos) –sófio de execução(multi-threading/ -core/ -chip...) –processo(memória partilhada/distribuída) •ao nível da instrução (InstructionLevelParallelism) –sónos dados(processadores vectoriais) –paralelismo desfasado(pipeline) –paralelismo "real"(VLIW, superescalar) •no acesso àmemória –paralelismo desfasado(interleaving) –paralelismo "real"(maior largura dobus) –paralelismo “redundante”(hierarquia de memória) »análise de processadores da Intel AJProença,Sistemas de Computação e Desempenho, MInf, UMinho, 2009/104

Paralelismo no processador Exemplo 1

E x e m p lo d e p ip e li n e

(2)

AJProença,Sistemas de Computação e Desempenho, MInf, UMinho, 2009/105

Paralelismo no processador Exemplo 2

E x e m p lo d e s u p e re s c a la ri d a d e ( n ív e l 2 )

AJProença,Sistemas de Computação e Desempenho, MInf, UMinho, 2009/106

A introdução de cache na arquitectura Intel P6 Nota: "Intel P6" éa designação comum da microarquitecturade PentiumPro, Pentium II e Pentium III, que serviu depois de base àCore e Nehalem AJProença,Sistemas de Computação e Desempenho, MInf, UMinho, 2009/107Chapter 1 —Computer Abstractions and Technology —7

Inside an AMD Processor

• A M D B a rc e lo n a : 4 p ro c e s s o r c o re s

AJProença,Sistemas de Computação e Desempenho, MInf, UMinho, 2009/108

Inside an Intel Processor

• In te l N e h a le m : 4 p ro c e s s o r c o re s

(3)

AJProença,Sistemas de Computação e Desempenho, MInf, UMinho, 2009/109

A arquitectura interna dos processadores Intel P6(1) Unidades FuncionaisInteger/ BranchFP AddFP Mult/DivLoadStoreInstruction Cache Data Cache

Fetch Control Instruction Decode

Address Instrs. Operações PrevisãoOK? DataData

Addr.Addr.

General Integer Operation Results

Retirement Unit Register File Execution Unit

Instruction Control Unit AJProença,Sistemas de Computação e Desempenho, MInf, UMinho, 2009/1010

Algumas potencialidades do Intel P6(1) de 4-níveis de pipeline...

para vários níveis de pipeline... AJProença,Sistemas de Computação e Desempenho, MInf, UMinho, 2009/1011

A arquitectura interna dos processadores Pentium 4 AJProença,Sistemas de Computação e Desempenho, MInf, UMinho, 2009/1012

(4)

AJProença,Sistemas de Computação e Desempenho, MInf, UMinho, 2009/1013

Percurso crítico no pipeline de instruções: o P6 e o Pentium 4

P 6 P e n ti u m 4

AJProença,Sistemas de Computação e Desempenho, MInf, UMinho, 2009/1014

Níveis de pipeline em 3 gerações de Pentium AJProença,Sistemas de Computação e Desempenho, MInf, UMinho, 2009/1015

O pipeline no Pentium 4: níveis 1-5 AJProença,Sistemas de Computação e Desempenho, MInf, UMinho, 2009/1016

O pipeline no Pentium 4: níveis 6-12

(5)

AJProença,Sistemas de Computação e Desempenho, MInf, UMinho, 2009/1017

O pipeline no Pentium 4: níveis 13-17 AJProença,Sistemas de Computação e Desempenho, MInf, UMinho, 2009/1018

O pipeline no Pentium 4: níveis 18-20 AJProença,Sistemas de Computação e Desempenho, MInf, UMinho, 2009/1019

CPU features before 2006 FIGURE 4.73 Record of Intel and Sun Microprocessors in terms of pipeline complexity, number of cores, and power.The Pentium 4 pipeline stages do not include the commit stages. If we included them, the Pentium 4 pipelines would be even deeper. Copyright ©2009 Elsevier, Inc. All rights reserved. AJProença,Sistemas de Computação e Desempenho, MInf, UMinho, 2009/1020

A brief history of x86 vector capabilities

(6)

AJProença,Sistemas de Computação e Desempenho, MInf, UMinho, 2009/1021

Como estão a evoluir as memórias?

“T h e m a in c h a lle n g e f o r th e C P U d e s ig n e r to d a y i s t h e a v e ra g e m e m o ry l a te n c y t h e C P U s e e s . A P e n ti u m 4 3 .6 G H z w it h D D R -4 0 0 ru n s ( .. .) f a s te r th a n t h e b a s e c lo c k o f th e R A M ( 2 0 0 M H z ). ( .. .) T h e r e s u lt i s t h a t w a it ti m e s o f 2 0 0 t o 3 0 0 c y c le s a re n o t u n c o m m o n o n t h e P e n ti u m 4 . T h e g o a l o f C P U c a c h e i s t o a v o id a c c e s s in g R A M , b u t (. .. )”

Statement in 2004… AJProença,Sistemas de Computação e Desempenho, MInf, UMinho, 2009/1022

Evolução das caches nos x86, pré2006 AJProença,Sistemas de Computação e Desempenho, MInf, UMinho, 2009/1023

•Execuçãoparalela de váriasinstruções –2integer(1 podeser branch) –1FPAdd –1FPMultiplyouDivide –1load –1store •Algumasinstruçõesrequerem> 1 ciclo, maspodemser encadeadas InstruçãoLatênciaCiclos/Emissão –Load/Store31 –IntegerMultiply41 –IntegerDivide3636 –Double/SingleFPMultiply52 –Double/SingleFPAdd31 –Double/SingleFPDivide3838

U. Func.Integer/ BranchFP AddFP Mult/DivLoadStore Data Cache

DataDataAddr.Addr.

General Integer Operation Results Execution Unit

Algumas potencialidades do Intel P6(2) AJProença,Sistemas de Computação e Desempenho, MInf, UMinho, 2009/1024

•TraduzinstruçõesemOperações –Operações: designaçãodaIntel parainstruçõestipo-RISC –instruçãotípicarequer1–3 operações •Convertereferênciasa RegistosemTags –Tags: identificadorabstractoqueligao resultadode umaoperaçãocom operandos-fontede operaçõesfuturas

Instruction Cache

Fetch Control Instruction Decode

Address Instrs. Operations

Retirement Unit Register File

A unidade de controlo de instruções do Intel P6 Instruction Control Unit

P a p e l d a I C U :

•LêinstruçõesdaInstCache –baseadono IP + previsãode saltos –antecipadinamicamente(por h/w) se salta/não_saltae (possível) endereçode salto

(7)

AJProença,Sistemas de Computação e Desempenho, MInf, UMinho, 2009/1025

Algumas limitações do pipeline: dependências de dados e saltos condicionais Ver exemplo nos slides seguintes...

incl%edx cmpl%esi,%edx jl.L24 AJProença,Sistemas de Computação e Desempenho, MInf, UMinho, 2009/1026

• P ro c e d im e n to – c a lc u la a s o m a d e t o d o s o s e le m e n to s d o v e c to r – g u a rd a o r e s u lt a d o n u m a l o c a liz a ç ã o d e s ti n o – e s tr u tu ra e o p e ra ç õ e s d o v e c to r d e fi n id o s v ia A D T

voidcombine4(vec_ptrv,int*dest) { inti; intlength=vec_length(v); int*data=get_vec_start(v); intsum=0; for(i=0;i<length;i++) sum+=data[i]; *dest=sum; }

Análise detalhada do exemplo: forma genérica e abstracta decombine voidabstract_combine4(vec_ptrv,data_t*dest) { inti; intlength=vec_length(v); data_t*data=get_vec_start(v); data_tt=IDENT; for(i=0;i<length;i++) t=tOPdata[i]; *dest=t; } AJProença,Sistemas de Computação e Desempenho, MInf, UMinho, 2009/1027

• V e rs ã o d e c o m b i n e 4 – ti p o d e d a d o s : in te ir o ; o p e ra ç ã o : m u lt ip lic a ç ã o • T ra d u ç ã o d a 1 ª it e ra ç ã o

.L24:#Loop: imull(%eax,%edx,4),%ecx#t*=data[i] incl%edx#i++ cmpl%esi,%edx#i:length jl.L24#if<gotoLoop .L24: imull(%eax,%edx,4),%ecx incl%edx cmpl%esi,%edx jl.L24 load(%eax,%edx.0,4)t.1 imullt.1,%ecx.0%ecx.1 incl%edx.0%edx.1 cmpl%esi,%edx.1cc.1 jl-takencc.1

Conversão de instruções com registos para operações com tags AJProença,Sistemas de Computação e Desempenho, MInf, UMinho, 2009/1028

•Operações –a posiçãovertical dáumaindicação do tempo emqueéexecutada •umaoperaçãonãopodeiniciar-se semosseusoperandos –a alturatraduza latência •Operandos –osarcos apenassãorepresentados paraosoperandosquesãousados no contextodaexecution unit

cc.1 t.1

load %ecx.1

incl cmpl jl

%edx.0 %edx.1 %ecx.0 imull

Time

Análise visual da execução de instruções no P6: 1 iteração do ciclo de produtos emcombine load(%eax,%edx.0,4t.1 imullt.1,%ecx.0%ecx.1 incl%edx.0%edx.1 cmpl%esi,%edx.1cc.1 jl-takencc.1

(8)

AJProença,Sistemas de Computação e Desempenho, MInf, UMinho, 2009/1029

cc.1 t.1

load %ecx.1

incl cmpl jl

%edx.0 %edx.1 %ecx.0 imull

cc.1 cc.2%ecx.0

%edx.3 t.1 imull %ecx.1

incl cmpl jl

%edx.0 i=0

load t.2 imull %ecx.2

incl cmpl jl

%edx.1 i=1

load cc.3 t.3 imull %ecx.3

incl cmpl jl

%edx.2 i=2

load Cycle

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

cc.1 cc.2 Iteration 3

Iteration 2

Iteration 1

cc.1 cc.2%ecx.0

%edx.3 t.1 imull %ecx.1

incl cmpl jl

%edx.0 i=0

load t.1 imull %ecx.1

incl cmpl jl

%edx.0 i=0

load t.2 imull %ecx.2

incl cmpl jl

%edx.1 i=1

load t.2 imull %ecx.2

incl cmpl jl

%edx.1 i=1

load cc.3 t.3 imull %ecx.3

incl cmpl jl

%edx.2 i=2

load Cycle

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Cycle

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

cc.1 cc.2 Iteration 3

Iteration 2

Iteration 1

• A n á li s e c o m r e c u rs o s il im it a d o s – e x e c u ç ã o p a ra le la e e n c a d e a d a d e o p e ra ç õ e s n a E U – e x e c u ç ã o o u t- o f- o rd e r e e s p e c u la ti v a • D e s e m p e n h o – fa c to r lim it a ti v o : la tê n c ia d a m u lt ip l. d e i n te ir o s – C P E : 4 .0

Análise visual da execução de instruções no P6: 3 iterações do ciclo de produtos emcombine AJProença,Sistemas de Computação e Desempenho, MInf, UMinho, 2009/1030

• A n á li s e c o m r e c u rs o s il im it a d o s • D e s e m p e n h o – p o d e c o m e ç a r u m a n o v a i te ra ç ã o e m c a d a c ic lo d e c lo c k – v a lo r te ó ri c o d e C P E : 1 .0 – re q u e r a e x e c u ç ã o d e 4 o p e ra ç õ e s c / in te ir o s e m p a ra le lo

%edx.0 t.1

%ecx.i +1

incl cmpl jl addl %ecx.1

i=0

load cc.1

%edx.0 t.1

%ecx.i +1

incl cmpl jl addl %ecx.1

i=0

load cc.1

%edx.1 t.2

%ecx.i +1

incl cmpl jl addl %ecx.2

i=1

load cc.2

%edx.1 t.2

%ecx.i +1

incl cmpl jl addl %ecx.2

i=1

load cc.2

%edx.2 t.3

%ecx.i +1

incl cmpl jl addl %ecx.3

i=2

load cc.3

%edx.2 t.3

%ecx.i +1

incl cmpl jl addl %ecx.3

i=2

load cc.3

%edx.3 t.4

%ecx.i +1

incl cmpl jl addl %ecx.4

i=3

load cc.4

%edx.3 t.4

%ecx.i +1

incl cmpl jl addl %ecx.4

i=3

load cc.4

%ecx.0 %edx.4 Cycle

1 2 3 4 5 6 7

Cycle

1 2 3 4 5 6 7

Iteration 1 Iteration 2 Iteration 3 Iteration 4

4 ops inteiro

Análise visual da execução de instruções no P6: 4 iterações do ciclo de somas emcombine AJProença,Sistemas de Computação e Desempenho, MInf, UMinho, 2009/1031

Iteration 4 Iteration 5 Iteration 6 Iteration 7 Iteration 8

%ecx.3 %edx.8

%edx.3 t.4

%ecx.i +1

incl cmpl jladdl %ecx.4

i=3

load cc.4

%edx.3 t.4

%ecx.i +1

incl cmpl jladdl %ecx.4

i=3

load cc.4

%edx.4 t.5%ecx.i +1

incl cmpl jladdl %ecx.5 i=4

load cc.5

%edx.4 t.5%ecx.i +1

incl cmpl jladdl %ecx.5 i=4

load cc.5 cc.6 %edx.7 t.8%ecx.i +1

incl cmpl jladdl %ecx.8

i=7

load cc.8

%edx.7 t.8%ecx.i +1

incl cmpl jladdl %ecx.8

i=7

load cc.8

%edx.5 t.6

incl cmpl jl

addl %ecx.6

load i=5

%edx.5 t.6

incl cmpl jl

addl %ecx.6

load i=5

6 7 8 9 10 11 12 Cycle

13 14 15 16 17

6 7 8 9 10 11 12 Cycle

13 14 15 16 17 18

cc.6

%edx.6 t.7 cmpl jl

addl %ecx.7

load cc.7 i=6

incl

%edx.6 t.7 cmpl jl

addl %ecx.7

load cc.7 i=6

incl

– a p e n a s 2 u n id fu n c io n a is d e i n te ir o s – a lg u m a s o p e ra ç õ e s tê m d e s e r a tr a s a d a s , m e s m o e x is ti n d o o p e ra n d o s – p ri o ri d a d e : o rd e m d e e x e c d o p ro g ra m a • D e s e m p e n h o – C P E e x p e c tá v e l: 2 .0

As iterações do ciclo de somas: análise com recursos limitados AJProença,Sistemas de Computação e Desempenho, MInf, UMinho, 2009/1032

O p ti m iz a ç ã o 4 : – ju n ta r v á ri a s ( 3 ) it e ra ç õ e s n u m s im p le s c ic lo – a m o rt iz a o v e rh e a d d o s c ic lo s e m v á ri a s it e ra ç õ e s – te rm in a e x tr a s n o fi m – C P E : 1 .3 3

voidcombine5(vec_ptrv,int*dest) { intlength=vec_length(v); intlimit=length-2; int*data=get_vec_start(v); intsum=0; inti; /*junta3elem'snomesmociclo*/ for(i=0;i<limit;i+=3){ sum+=data[i]+data[i+1] +data[i+2]; } /*completaosrestanteselem's*/ for(;i<length;i++){ sum+=data[i]; } *dest=sum; } Técnicasde optimizaçãodependentesdamáquina: loop unroll(1)

Referências

Documentos relacionados

Historicamente, o Departamento de Estruturas da Faculdade de Engenharia Civil (FEC) da Universidade Estadual de Campinas (Unicamp) vem atuando no sentido de caracterizar o

A partir de dados coletados do sistema gerenciador de ar comprimido, elaborar um diagnóstico com as melhorias necessárias para aumento da eficiência do sistema de ar comprimido

Figure III. 37: Water vapor-liquid interfacial tension.. 38: Ethanol vapor-liquid interfacial tension. Interfacial tension was calculated using these coefficients in

...48 Figura 4.15 Variação da fração solar com o coeficiente de perda efectivo da parede não solar, para a Cavidade I em Aveiro, ao longo de um ano...49 Figura 4.16 Variação

Devido às excelentes previsões obtidas pelos modelos construídos, a degradação eletroquímica de misturas de compostos fenólicos no BDD pode, portanto, ser estudada com auxílio

Hoje, a Catedral Metropolitana de Campinas abriga em seu interior o Museu Arquidiocesano de Campinas, criado em 1969 por Dom Paulo de Tarso, e o Museu da

1º.) A visualização da mudança da mídia impressa para a online como algo positivo, isto devido ao fato de trazer novas fontes de receitas para a organização, mesmo

4.. Neste capítulo iremos analisar o modo como a política perspectiva o problema da protecção ambiental e como isso se reflecte na regulação