21
Extensões Multimídia Alunos: Daniel Machado de Faria – RA015783 Daniel Piccolo Gasparotto – RA015788 Professor: Rodolfo Jardim de Azevedo

Extensões Multimídia Alunos: Daniel Machado de Faria – RA015783 Daniel Piccolo Gasparotto – RA015788 Professor: Rodolfo Jardim de Azevedo

Embed Size (px)

Citation preview

Page 1: Extensões Multimídia Alunos: Daniel Machado de Faria – RA015783 Daniel Piccolo Gasparotto – RA015788 Professor: Rodolfo Jardim de Azevedo

Extensões Multimídia

Alunos: Daniel Machado de Faria – RA015783Daniel Piccolo Gasparotto – RA015788Professor:Rodolfo Jardim de Azevedo

Page 2: Extensões Multimídia Alunos: Daniel Machado de Faria – RA015783 Daniel Piccolo Gasparotto – RA015788 Professor: Rodolfo Jardim de Azevedo

Introdução – Instruções SIMD● Single Instruction, Multiple Data● Instruções que fazem de modo eficiente

operações sobre um grande conjunto de dados, em paralelo

Page 3: Extensões Multimídia Alunos: Daniel Machado de Faria – RA015783 Daniel Piccolo Gasparotto – RA015788 Professor: Rodolfo Jardim de Azevedo

Introdução – Extensões Multimídia

● Na década de 90 houve um grande aumento na importância de processar vídeos e músicas nos computadores pessoais

● Extensões multimídia são instruções SIMD● Algorítmos multimídia fazem operações

“fixas” sobre um grande volume de dados● A primeira arquitetura foi a PA-RISC (HP),

mas a que se popularizou foi a MMX (da Intel)

Page 4: Extensões Multimídia Alunos: Daniel Machado de Faria – RA015783 Daniel Piccolo Gasparotto – RA015788 Professor: Rodolfo Jardim de Azevedo

Introdução - Apresentação

● Como extensões multimídia são implementadas

● Descrição dos sistemas mais utilizados (MMX, SSE, 3DNow!, AltVec, etc.)

● Exemplos e análise de desempenho ● Conclusão.

Page 5: Extensões Multimídia Alunos: Daniel Machado de Faria – RA015783 Daniel Piccolo Gasparotto – RA015788 Professor: Rodolfo Jardim de Azevedo

Como funcionam - Introdução

● Mais de uma fonte de dados em cada registrador (“vetorizado”)

● Faz-se uma operação em todos os dados, paralelamente

● Apenas um acesso à memória

Page 6: Extensões Multimídia Alunos: Daniel Machado de Faria – RA015783 Daniel Piccolo Gasparotto – RA015788 Professor: Rodolfo Jardim de Azevedo

Como funcionam - Exemplo

● Uma instrução SIMD da IA-64: packed add

Page 7: Extensões Multimídia Alunos: Daniel Machado de Faria – RA015783 Daniel Piccolo Gasparotto – RA015788 Professor: Rodolfo Jardim de Azevedo

MMX● Questão: novos registradores ou overlap?● Pontos foram considerados: fácil portabilidade,

aumento mínimo na área do “die” e ser genérico.● Registradores MMX de 64 bits mapeados por cima

dos registradores IA de ponto flutuante – 8 bytes, 4 word, 2 double word e 1 quadword

● Compatibilidade com a IA

Page 8: Extensões Multimídia Alunos: Daniel Machado de Faria – RA015783 Daniel Piccolo Gasparotto – RA015788 Professor: Rodolfo Jardim de Azevedo

MMX - Curiosidade

● Números MMX tornam números PF inválidos

Page 9: Extensões Multimídia Alunos: Daniel Machado de Faria – RA015783 Daniel Piccolo Gasparotto – RA015788 Professor: Rodolfo Jardim de Azevedo

MMX - Problemas

● Overlap: operações sobre PF e sobre MMX não devem ser intercaladas - FPU x87 usa os mesmo registradores

● Apenas prover operações SIMD com inteiros● Formato – um dos operandos fonte será o destino

Page 10: Extensões Multimídia Alunos: Daniel Machado de Faria – RA015783 Daniel Piccolo Gasparotto – RA015788 Professor: Rodolfo Jardim de Azevedo

3DNow!

● Usa os registradores de PF (1x64, 2x32, 4x16, 8x8 ou 2x32 PF) como o MMX

● Instruções que controlam dados da cache● Operações SIMD em números ponto flutuante de 32

bits● 3DNow!, Enchanced 3DNow! e 3DNow! Professional● Vantagem: adicionar e multiplicar os dois números

que estão nos registradores.● Desvantagem ao SSE: operar sobre apenas 2

números PF● Também usa os mesmos registradores que a FPU x87

Page 11: Extensões Multimídia Alunos: Daniel Machado de Faria – RA015783 Daniel Piccolo Gasparotto – RA015788 Professor: Rodolfo Jardim de Azevedo

SSE

● KNI, MMX2 ou SSE – resposta ao 3DNow!● Oito novos registradores de 128 bits XMM

Page 12: Extensões Multimídia Alunos: Daniel Machado de Faria – RA015783 Daniel Piccolo Gasparotto – RA015788 Professor: Rodolfo Jardim de Azevedo

SSE

● Problema de suporte dos SO's● Suporte a operações SIMD sobre números ponto

flutuante● A princípio, o SSE é mais poderoso que o 3DNow!;

Porém, no Pentium III, a FPU não foi alterada (solução parcial).

Page 13: Extensões Multimídia Alunos: Daniel Machado de Faria – RA015783 Daniel Piccolo Gasparotto – RA015788 Professor: Rodolfo Jardim de Azevedo

SSE2

● Estende o conjunto de instrução SSE● Substitui MMX● Suporte para o ponto flutuante de 64 bits● Operações SIMD em inteiros; Compatível com

intruções simples que usam a FPU

Page 14: Extensões Multimídia Alunos: Daniel Machado de Faria – RA015783 Daniel Piccolo Gasparotto – RA015788 Professor: Rodolfo Jardim de Azevedo

SSE3

● Extenção do SSE2● Melhoras e Otimizações

Page 15: Extensões Multimídia Alunos: Daniel Machado de Faria – RA015783 Daniel Piccolo Gasparotto – RA015788 Professor: Rodolfo Jardim de Azevedo

3DNow! em Opteron e AMD64

● Conjunto completo MMX, 3DNow!, SSE e SSE2.

● Foram adicionados 8 registradores XMM e 8 GPR, além dos existentes

Page 16: Extensões Multimídia Alunos: Daniel Machado de Faria – RA015783 Daniel Piccolo Gasparotto – RA015788 Professor: Rodolfo Jardim de Azevedo

VIS

● VIS é um tanto limitado● Reusa registradores de PF● Mais comparável aos sistemas antigos MMX e 3DNow!● Só realiza operações em inteiros

Page 17: Extensões Multimídia Alunos: Daniel Machado de Faria – RA015783 Daniel Piccolo Gasparotto – RA015788 Professor: Rodolfo Jardim de Azevedo

AltiVec

● Parceria entra a Apple (Velocity Engine), Motorola (AltiVec) e IBM (VMX).

● Um dos sistemas SIMD mais poderosos para computadores pessoais

● 32 Registradores novos de 128 bits● Não opera com tipo ponto flutuante de dupla

precisão de 64 bits e não move valores entre estes registradores e os de propósito geral

● Compiladores têm certa dificuldade na otimização

Page 18: Extensões Multimídia Alunos: Daniel Machado de Faria – RA015783 Daniel Piccolo Gasparotto – RA015788 Professor: Rodolfo Jardim de Azevedo

Exemplos – limite duplo

● Produzir uma imagem binarizada

void BinarizeWithDoubleThreshold(const unsigned char sourceimage[],const size_t nrpixels,const unsigned char lowerthreshold[],const unsigned char upperthreshold[],unsigned char binarizedimage[]){

for( size_t i = 0; i < nrpixels; i++ )binarizedimage[ i ] = (unsigned char)(

(sourceimage[ i ] >= lowerthreshold[ i ] && sourceimage[ i ] < upperthreshold[ i ]) ? 0x0 : 0xff);

}

Page 19: Extensões Multimídia Alunos: Daniel Machado de Faria – RA015783 Daniel Piccolo Gasparotto – RA015788 Professor: Rodolfo Jardim de Azevedo

CP U Pentium III, 1 GHz Mobile Pentium III, 600 MHz Pentium 4, 1.5 GHz Athlon, 1.2 GHz Itanium, 733 MHz

RAM 256 MB SDRAM, 133 MHz 256 MB SDRAM, 100 MHz 256 MB RDRAM, 800 MHz 256 MB SDRAM, 133 MHz 1 GB SDRAM, 133 MHz

Sistema operacional MS Windows 2000 P ro MS Windows XP P ro MS Windows 2000 P ro MS Windows XP P ro MS Windows 2000 Server IA64

Compiler Intel C/C++ 5.0

MP ixels / s (C++) 61.49 31.08 17.95 20.17 144.51

MP ixels / s (MMX ASM*) 2016.49 988.37 927.30 432.37 NA

Speed-Up Factor 32.79 31.81 51.66 21.44 NA

MP ixels / s (SSE2 ASM*) NA** NA** 1439.56 NA** NA**

Speed-Up Factor NA** NA** 85.18 NA** NA**

MP ixels / s (C++) 40.87 25.80 16.87 16.46 48.94

MP ixels / s (MMX ASM*) 109.99 131.51 339.41 92.62 NA

Speed-Up Factor 2.69 5.10 20.12 5.63 NA

MP ixels / s (SSE2 ASM*) NA** NA** 449.90 NA** NA**

Speed-Up Factor NA** NA** 26.67 NA** NA**

Sistema

MS Visual C/C++ 6.0

Results

Data cached

Data uncached

* Funções especializadas separadas para dados dentro e fora da cache

** O sistema SSE2 não está presente no processador

*** Os resultados estão muito baixos

Exemplos – limite duplo

Page 20: Extensões Multimídia Alunos: Daniel Machado de Faria – RA015783 Daniel Piccolo Gasparotto – RA015788 Professor: Rodolfo Jardim de Azevedo

Exemplos – IA-64

● Pixel Padding ● Shape Adaptative DCT● Split Radix FFT

Page 21: Extensões Multimídia Alunos: Daniel Machado de Faria – RA015783 Daniel Piccolo Gasparotto – RA015788 Professor: Rodolfo Jardim de Azevedo

Conclusão

● Potencial de aumentar o desempenho de problemas multimídia

● Compiladores não utilizam todo esse potencial ● Primeiras extensões multimídia surgiram numa

época em que os computadores eram lentos● Extensões multimídia ainda são úteis?