Aula 03: Análise de Performance e Benchmarks

35
ARQUITETURA DE COMPUTADORES DEPT. DE CIÊNCIA DA COMPUTAÇÃO - UFMG Aula 03: Análise de Performance e Benchmarks

description

Aula 03: Análise de Performance e Benchmarks. O Perigo das Previsões. O Perigo das Previsões. Ferramentas para Medidas de Performance. Benchmarks, Traces, Mixes Custo, atraso, área, estimativa de potência Simulação (muitos níveis) ISA, RT, Gate, Circuito Teoria das filas Basic Rules - PowerPoint PPT Presentation

Transcript of Aula 03: Análise de Performance e Benchmarks

Page 1: Aula 03: Análise de Performance  e Benchmarks

ARQUITETURA DE COMPUTADORESDEPT. DE CIÊNCIA DA COMPUTAÇÃO - UFMG

Aula 03: Análise de Performance e Benchmarks

Page 2: Aula 03: Análise de Performance  e Benchmarks

O Perigo das Previsões...

Page 3: Aula 03: Análise de Performance  e Benchmarks

O Perigo das Previsões...

Page 4: Aula 03: Análise de Performance  e Benchmarks

Ferramentas para Medidas de Performance

Benchmarks, Traces, Mixes Custo, atraso, área, estimativa de

potência Simulação (muitos níveis)

ISA, RT, Gate, Circuito Teoria das filas Basic Rules Leis fundamentais

Page 5: Aula 03: Análise de Performance  e Benchmarks

Performance (e Custo)

• Tempo para rodar tarefa (ExTime ou ET)– tempo de execução, tempo de resposta, latência

• Tarefas por dia, hora, semana, sec, ns … (Performance)

– Throughput, bandwidth

Avião

Boeing 747

BAD/Sud Concodre

Veloc.

610 mph

1350 mph

DC à Paris

6.5 horas

3 horas

Passageiros

470

132

Throughput (pmph)

286,700

178,200

Page 6: Aula 03: Análise de Performance  e Benchmarks

Performance (e Custo)

"X é n vezes mais veloz que Y" significa

ExTime(Y) Performance(X)

--------- = ---------------ExTime(X) Performance(Y)

• Velocidade do Concorde vs. Boeing 747

• Throughput do Boeing 747 vs. Concorde

Page 7: Aula 03: Análise de Performance  e Benchmarks

Terminologia de Performance

“X é n% mais veloz que Y” significa:ExTime(Y) Performance(X) n

--------- = -------------- = 1 + -----

ExTime(X) Performance(Y) 100

n = 100(Performance(X) - Performance(Y))

Performance(Y)

Exemplo: Y leva 15 segundos para completar tarefa, X leva 10 segundos. Quantos % X é mais rápido?

Page 8: Aula 03: Análise de Performance  e Benchmarks

Exemplo

1510

= 1.51.0

= Performance (X)Performance (Y)

ExTime(Y)ExTime(X)

=

n = 100 (1.5 - 1.0) 1.0

n = 50%

Page 9: Aula 03: Análise de Performance  e Benchmarks

Lei de Amdahl

Speedup devido à melhoria E: ExTime sem E Performance com ESpeedup(E) = ------------- = ------------------- ExTime com E Performance sem E

Suponha que melhoria E acelere porção F da tarefa por fator S, e que restante da tarefa permanece sem alteração, então

ExTime(E) =Speedup(E) =

Page 10: Aula 03: Análise de Performance  e Benchmarks

Lei de Amdahl

ExTimenew = ExTimeold x (1 - Fractionenhanced) + Fractionenhanced

Speedupoverall =ExTimeold

ExTimenew

Speedupenhanced

=

1

(1 - Fractionenhanced) + Fractionenhanced

Speedupenhanced

Em última análise, performance de qualquer sistema serálimitada por porção que não é melhorada...

Page 11: Aula 03: Análise de Performance  e Benchmarks

Lei de Amdahl

Instruções de ponto flutuante são melhoradas para rodar 2X mais rápidas, mais somente 10% das instruções são de ponto flutuante (FP).

Speedupoverall =

ExTimenew =

Page 12: Aula 03: Análise de Performance  e Benchmarks

Lei de Amdahl Instruções de ponto flutuante são

melhoradas para rodar 2X mais rápidas, mais somente 10% das instruções são de ponto flutuante (FP).

Speedupoverall = 1

0.95= 1.053

ExTimenew = ExTimeold x (0.9 + .1/2) = 0.95 x ExTimeold

Page 13: Aula 03: Análise de Performance  e Benchmarks

Corolário: Make the common case fast

Todas as instruções requerem busca de instrução, somente uma fração requer busca ou escrita de dados.

Otimize acessos à instruções ao invés de otimizar o acesso a dados Programas exibem localidade de referência

Localidade espacial Localidade temporal

Acesso a memórias menores é mais rápido Mantenha hierarquia de memória de modo a fazer acessos mais

freqüentes estar localizados nas memórias menores.

Reg'sCache

MemóriaDisco / Fita

CPU

Page 14: Aula 03: Análise de Performance  e Benchmarks

Regra Básica:Make the common case fast

Os casos mais simples são usualmente mais freqüentes e mais fáceis de se otimizar!!!

Faça as coisas simples e rápidas em hardware e tenha certeza de que o resto seja feito corretamente em software.

Page 15: Aula 03: Análise de Performance  e Benchmarks

Métricas de Performance

(milhões) de instruções por segundo: MIPS(milhões) de operações FP por segundo: MFLOP/s

Ciclos por segundo (clock rate)

Megabytes / segundo

Respostas por mêsOperações por segundo

Compilador

Linguagens deProgramação

Aplicação

DatapathControl

Transistores Lógica

ISA

Unidades Funcionais

Page 16: Aula 03: Análise de Performance  e Benchmarks

Aspectos da Performance de uma CPUCPU time = Seconds = Instructions x Cycles x

Seconds

Program Program Instruction Cycle

CPU time = Seconds = Instructions x Cycles x Seconds

Program Program Instruction Cycle

Instr. Cnt CPI Clock RatePrograma X

Compilador X (X)

Conj. Instrs. X X

Organização X X

Tecnologia X

Page 17: Aula 03: Análise de Performance  e Benchmarks

Métricas de MarketingMIPS = IC / CPU time * 10^6 = Clock Rate / CPI * 10^6

• Máquinas com diferentes conjuntos de instruções ?

• Programas com instruções diferentes ?

– Freqüência dinâmica das instruções

• Sem correlação com performance

MFLOP/s = Operações FP / CPU time * 10^6

• Dependente de máquina

• Tempo da máquina pode estar sendo gasto em outro lugar

Normalizado:

add,sub,compare,mult 1

div, sqrt 4

exp, sin, . . . 8

Normalizado:

add,sub,compare,mult 1

div, sqrt 4

exp, sin, . . . 8

Page 18: Aula 03: Análise de Performance  e Benchmarks

Ciclos Por InstruçãoCycles per Instruction

CPU time = Cycle Time * CPI * Ii = 1

n

i i

CPI = CPI * F onde F = IC i = 1

n

i i i i

Instruction Count

“Freqüência de instruções”

CPI = (CPU Time * Clock Freq) / Instruction Count= Cycles / Instruction Count

“Média do número de ciclos por instrução

Page 19: Aula 03: Análise de Performance  e Benchmarks

Compromissos da Organização da CPU

Instruction Mix

Cycle Time

CPI

Compilador

Linguagens deProgramação

Aplicação

DatapathControl

Transistores Lógica

ISA

Unidades Funcionais

Page 20: Aula 03: Análise de Performance  e Benchmarks

Exemplo de Cálculo de CPI

Típico

Máquina Base (Reg / Reg)

Operação Freq Ciclos CPI(i) (% Time)

ALU 50% 1 .5 (33%)

Load 20% 2 .4 (27%)

Store 10% 2 .2 (13%)

Branch 20% 2 .4 (27%)

1.5

Page 21: Aula 03: Análise de Performance  e Benchmarks

Exemplo

Máquina Base (Reg / Reg)

Operação Freq CiclosALU 50% 1

Load 20% 2

Store 10% 2

Branch 20% 2

Típico

Adição de operações registrador / memória:– Um operando em memória– Um operando em registrador– Leva 2 ciclos para completar

Branch passa a levar 3 ciclos para completar.

Que fração dos loads tem que ser eliminada para modificação ser vantajosa?

Page 22: Aula 03: Análise de Performance  e Benchmarks

Solução

Exec Time = Instr Cnt x CPI x Clock

Op Freq Ciclos Freq CiclosALU .50 1 .5 .5 – X 1 .5 – XLoad .20 2 .4 .2 – X 2 .4 – 2XStore .10 2 .2 .1 2 .2Branch .20 2 .3 .2 3 .6Reg/Mem X 2 2X

1.00 1.5 1 – X (1.7 – X)/(1 – X)

Instr CntOld x CPIOld x ClockOld = Instr CntNew x CPINew x ClockNew

1.00 x 1.5 = (1 – X) x (1.7 – X)/(1 – X) 1.5 = 1.7 – X 0.2 = X

TODOS os loads devem ser eliminados para esta versão ser vantajosa!

Page 23: Aula 03: Análise de Performance  e Benchmarks

Programas para Avaliação da Performance de Processadores

(Toy) Benchmarks Programas de 10-100 linhas e.g.: sieve, puzzle, quicksort

Benchmarks sintéticos Tentativa de se ter na média a mesma freqüência de instruções

de programas reais e.g., Whetstone, dhrystone

Kernels Partes críticas de programas reais e.g., Livermore loops

Programas reais e.g., gcc, spice

Page 24: Aula 03: Análise de Performance  e Benchmarks

Truques Utilizados para Ganhar o Jogo dos Benchmarks Configurações diferentes das máquinas

utilizadas para rodar o mesmo programa Compilador otimizado para benchmark Utilizar benchmark escrito para melhorar

performance de uma única máquina Sincronizar jobs intensivos em CPU/IO Utilização de benchmarks pequenos Benchmarks “compilados na mão” para

otimizar performance

Page 25: Aula 03: Análise de Performance  e Benchmarks

Erros Comuns em Benchmarking

Variações das demandas de dispositivos ignorados

Loading level controlled inappropriately

Efeitos de cache ignorados

Tamanho de buffers inapropriados

Imprecisão devido a amostragem ignorada

Page 26: Aula 03: Análise de Performance  e Benchmarks

Erros Comuns em Benchmarking

Ignorar overhead dos monitores

Medições sem validação

Não manter mesmas condições iniciais

Não medir performance transiente (cold start)

Coleta de muitos dados com pouca análise

Page 27: Aula 03: Análise de Performance  e Benchmarks

SPEC: System Performance Evaluation Cooperative

Primeiro Round 1989 10 programas

Segundo Round 1992SpecInt92 (6 programas inteiros) e SpecFP92 (14 programas de ponto flutuantes) Sem limite para flags de compiladores

Terceiro Round 1995 Limite de um único flag para todos os programas Novo conjunto de programas

Quarto Round 2000 CPU 2000, CFP 2000, SPECviewperf

Page 28: Aula 03: Análise de Performance  e Benchmarks

SPEC Primeiro Round Um programa: 99% do tempo em única linha de

código Fácil para compilador (não testa a máquina)

Benchmark

SP

EC

Pe

rf

0

100

200

300

400

500

600

700

800

gcc

epresso

spice

doduc

nasa7 li

eqntott

matrix300

fpppp

tomcatv

Page 29: Aula 03: Análise de Performance  e Benchmarks

Como Agrupar Dados de Medições de Performance

Média aritmética

Média harmônica

Média geométrica

Page 30: Aula 03: Análise de Performance  e Benchmarks

Média Aritmética

.i ii

Weight TimeComputer A Computer B Computer C

P1 (seg) 1 10 20P2 (seg) 1000 100 20Total (W1) 500.50 55.00 20.00

Page 31: Aula 03: Análise de Performance  e Benchmarks

Média Harmônica Usada para sumarizar resultados com

taxas de execução (MIPS, MFLOPS), pois mantém relação entre tempos de execução

1

i i

n

Taxa

Page 32: Aula 03: Análise de Performance  e Benchmarks

Média Geométrica Usada para sumarizar resultados

normalizados

n ii

TempoNormalizadoComputer A Computer B Computer C

P1 (seg) 1.0 10.0 20P2 (seg) 1.0 0.1 0.02Média Geométrica

1.0 1.0 0.63

Não corresponde a realidade do tempo de execução

Page 33: Aula 03: Análise de Performance  e Benchmarks

Avaliação de Performance Vendas é uma função da performance relativa à

competição. Logo, espere investimentos altos em melhoria da performance do produto dado pela melhoria da performance dos benchmarks

Bons produtos aparecem quando: Bons benchmarks Boas maneiras de sumarizar a performance

Se benchmarks/sumário é inadequado, então melhoria do produto para melhorar vendas sempre ganha de outras opçõesEx. time é a única medida real de performance!

Que tal o custo?

Page 34: Aula 03: Análise de Performance  e Benchmarks

Avaliação de Benchmarks / Preços de CPUs

0

50

100

150

200

250

300

P-II350

P-II400

P-II450

P-III500

P-III600

P-III700

P-III800

BUSBENCHUS$/10Bench/$

http://www.cpuscorecard.com

Page 35: Aula 03: Análise de Performance  e Benchmarks

Lista de exercícios 1.1

1.2

1.7

1.8

1.14