Aula 03: Análise de Performance e Benchmarks

Slides:



Advertisements
Apresentações semelhantes
Ch Morgan Kaufmann Publishers Paulo C. Centoducatte – MC542 - IC/Unicamp- 2004s2 Desempenho.
Advertisements

PIPELINE (continuação).
Introdução à Hierarquia de Memória
CPU: Controle e processamento
WebDesign Redes de Computadores Aula 07
Ch Morgan Kaufmann Publishers Paulo C. Centoducatte Desempenho.
Arquitetura e organização de computadores
Arquitetura e organização de computadores.
Arquitetura de Computadores
Aula 06: Introdução ao Pipelining, Hazards Estruturais e Forwarding
Avaliação do desempenho
ARQUITETURA DE COMPUTADORES II
ARQUITETURAS RISC E CISC
Sistemas Digitais Projeto RTL – Unidade de Execução
Arquiteturas e Redes de Computadores
Desempenho de cpu Arquitetura e Organização de Computadores 1
Arquitetura de Sistemas Operacionais
MC542 Organização de Computadores Teoria e Prática
MC542 Organização de Computadores Teoria e Prática
Arquiteturas Superescalares
Morgan Kaufmann Publishers Paulo C. Centoducatte – MC542 - IC/Unicamp- 2006s Prof. Paulo Cesar Centoducatte
MO Prof. Paulo Cesar Centoducatte MC542 Organização de Computadores Teoria e Prática.
Pipeline.
CISC e RISC.
Modelos de Computadores Paralelos
SSC114 Arquitetura de Computadores Avaliação de Desempenho
SSC114 Arquitetura de Computadores Pipeline - Desempenho
Avaliação de Desempenho
Avaliação de Desempenho
Marcos José Santana Regina Helena Carlucci Santana
Avaliação de Desempenho
Avaliação de Desempenho Planejamento de Experimentos 2 Aula 2 Marcos José Santana Regina Helena Carlucci Santana Universidade de São Paulo Instituto de.
Avaliação de Desempenho
Avaliação de Desempenho
Avaliação de Desempenho
Avaliação de Desempenho Introdução Aula 1 Marcos José Santana Regina Helena Carlucci Santana Universidade de São Paulo Instituto de Ciências Matemáticas.
Avaliação de Desempenho Introdução Aula 1 Marcos José Santana Regina Helena Carlucci Santana Universidade de São Paulo Instituto de Ciências Matemáticas.
Avaliação de Desempenho Introdução Aula 1 Marcos José Santana Regina Helena Carlucci Santana Universidade de São Paulo Instituto de Ciências Matemáticas.
Avaliação de Desempenho Planejamento de Experimentos 1 Aula 1 Marcos José Santana Regina Helena Carlucci Santana Universidade de São Paulo Instituto de.
Sistemas Digitais Microprocessados
Componentes do Computador e noções de Arquitetura de Computadores
Ambiente de simulação Os algoritmos previamente discutidos foram analisados usando um simulador de mobilidade. Ele modela uma cidade de 20 Km de raio,
Avaliação do desempenho
AC1 – Previsão do Desempenho1 Previsão do Desempenho.
Introdução e Análise do Desempenho
Avaliação do Desempenho
Avaliação do Desempenho
Arquitectura de Computadores Avaliação do desempenho A definição do desempenho depende dos objectivos dos utilizadores Qual é o melhor avião?Qual é o mais.
Benchmarks Arquitectura de Computadores Lic. em Engenharia Informática 2008/09 Luís Paulo Santos.
Avaliando e Compreendendo o Desempenho - Respostas
Arquitetura de Computadores
Sistemas Operacionais I
Introdução à Programação
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Ambientais Ciência da Computação Aula 02: Introdução.
Arquitetura de computadores
Aveiro, 28 de Abril de Arquitectura de Computadores II Ano lectivo 2003/2004 Nuno
Organização e Arquitetura de Computadores
Agenda - Aula 2 Introdução (Computador Digital) Processadores
Sistemas Operacionais
Introdução à Hierarquia de Memória
INTRODUÇÃO À COMPUTAÇÃO
Bruno C. Bourbon Jarbas J. de O. Júnior {bcb, cin.ufpe.br
Microprocesadores x Microcontroladores
Arquitectura de Computadores II Paulo Marques Departamento de Eng. Informática Universidade de Coimbra 2004/ Aspectos sobre Desempenho.
Avaliação de Desempenho de Sistemas Computacionais
Conceitos Avançados de Arquitetura de Computadores Arquiteturas RISC Arquiteturas Superpipeline e Superescalares.
Bruno Iran Ferreira Maciel
Funcionamento interno do computador
Construção de Via de dados Trabalho Avaliativo do Primeiro Bimestre. Marcos André de Sena Silva.
Benchmarks: Dhrystone e Whetstone Matheus F. Stigger.
Transcrição da apresentação:

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

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 Leis fundamentais

Performance (e Custo) Tempo para rodar tarefa (ExTime ou ET) Avião DC à Paris 6.5 horas 3 horas Veloc. 610 mph 1350 mph Passageiros 470 132 Throughput (pmph) 286,700 178,200 Boeing 747 BAD/Sud Concodre 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

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

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?

Exemplo ExTime(Y) ExTime(X) 15 10 1.5 1.0 Performance (X) Performance (Y) = = = 100 (1.5 - 1.0) 1.0 n = n = 50%

Lei de Amdahl Speedup devido à melhoria E: ExTime sem E Performance com E Speedup(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) =

Lei de Amdahl ExTimenew = ExTimeold x (1 - Fractionenhanced) + Fractionenhanced Speedupenhanced 1 ExTimeold ExTimenew Speedupoverall = = (1 - Fractionenhanced) + Fractionenhanced Speedupenhanced Em última análise, performance de qualquer sistema será limitada por porção que não é melhorada...

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). ExTimenew = Speedupoverall =

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). ExTimenew = ExTimeold x (0.9 + .1/2) = 0.95 x ExTimeold 1 Speedupoverall = = 1.053 0.95

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. CPU Reg's Cache Memória Disco / Fita

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.

Métricas de Performance Compilador Linguagens de Programação Aplicação Datapath Control Transistores Lógica ISA Unidades Funcionais Respostas por mês Operações por segundo (milhões) de instruções por segundo: MIPS (milhões) de operações FP por segundo: MFLOP/s Megabytes / segundo Ciclos por segundo (clock rate)

Aspectos da Performance de uma CPU CPU time = Seconds = Instructions x Cycles x Seconds Program Program Instruction Cycle Instr. Cnt CPI Clock Rate Programa X Compilador X (X) Conj. Instrs. X X Organização X X Tecnologia X

Métricas de Marketing MIPS = 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

Ciclos Por Instrução Cycles per Instruction “Média do número de ciclos por instrução CPI = (CPU Time * Clock Freq) / Instruction Count = Cycles / Instruction Count n CPU time = Cycle Time * S CPI * I i i i = 1 “Freqüência de instruções” n CPI = S CPI * F onde F = IC i i i i i = 1 Instruction Count

Compromissos da Organização da CPU Compilador Linguagens de Programação Aplicação Datapath Control Transistores Lógica ISA Unidades Funcionais Instruction Mix CPI Cycle Time

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

Exemplo 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? Máquina Base (Reg / Reg) Operação Freq Ciclos ALU 50% 1 Load 20% 2 Store 10% 2 Branch 20% 2 Típico

Solução Exec Time = Instr Cnt x CPI x Clock Op Freq Ciclos Freq Ciclos ALU .50 1 .5 .5 – X 1 .5 – X Load .20 2 .4 .2 – X 2 .4 – 2X Store .10 2 .2 .1 2 .2 Branch .20 2 .3 .2 3 .6 Reg/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!

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

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

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

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

SPEC: System Performance Evaluation Cooperative Primeiro Round 1989 10 programas Segundo Round 1992 SpecInt92 (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

SPEC Primeiro Round Um programa: 99% do tempo em única linha de código Fácil para compilador (não testa a máquina)

Como Agrupar Dados de Medições de Performance Média aritmética Média harmônica Média geométrica

Média Aritmética 1 10 20 1000 100 500.50 55.00 20.00 P1 (seg) P2 (seg) Computer A Computer B Computer C P1 (seg) 1 10 20 P2 (seg) 1000 100 Total (W1) 500.50 55.00 20.00

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

Média Geométrica Usada para sumarizar resultados normalizados 1.0 10.0 Computer A Computer B Computer C P1 (seg) 1.0 10.0 20 P2 (seg) 0.1 0.02 Média Geométrica 0.63 Não corresponde a realidade do tempo de execução

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ções Ex. time é a única medida real de performance! Que tal o custo?

Avaliação de Benchmarks / Preços de CPUs http://www.cpuscorecard.com

Lista de exercícios 1.1 1.2 1.7 1.8 1.14