Extensões Multimídia Alunos: Daniel Machado de Faria – RA015783 Daniel Piccolo Gasparotto –...
Transcript of Extensões Multimídia Alunos: Daniel Machado de Faria – RA015783 Daniel Piccolo Gasparotto –...
![Page 1: Extensões Multimídia Alunos: Daniel Machado de Faria – RA015783 Daniel Piccolo Gasparotto – RA015788 Professor: Rodolfo Jardim de Azevedo.](https://reader036.fdocumentos.com/reader036/viewer/2022062418/552fc10b497959413d8c1197/html5/thumbnails/1.jpg)
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.](https://reader036.fdocumentos.com/reader036/viewer/2022062418/552fc10b497959413d8c1197/html5/thumbnails/2.jpg)
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.](https://reader036.fdocumentos.com/reader036/viewer/2022062418/552fc10b497959413d8c1197/html5/thumbnails/3.jpg)
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.](https://reader036.fdocumentos.com/reader036/viewer/2022062418/552fc10b497959413d8c1197/html5/thumbnails/4.jpg)
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.](https://reader036.fdocumentos.com/reader036/viewer/2022062418/552fc10b497959413d8c1197/html5/thumbnails/5.jpg)
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.](https://reader036.fdocumentos.com/reader036/viewer/2022062418/552fc10b497959413d8c1197/html5/thumbnails/6.jpg)
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.](https://reader036.fdocumentos.com/reader036/viewer/2022062418/552fc10b497959413d8c1197/html5/thumbnails/7.jpg)
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.](https://reader036.fdocumentos.com/reader036/viewer/2022062418/552fc10b497959413d8c1197/html5/thumbnails/8.jpg)
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.](https://reader036.fdocumentos.com/reader036/viewer/2022062418/552fc10b497959413d8c1197/html5/thumbnails/9.jpg)
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.](https://reader036.fdocumentos.com/reader036/viewer/2022062418/552fc10b497959413d8c1197/html5/thumbnails/10.jpg)
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.](https://reader036.fdocumentos.com/reader036/viewer/2022062418/552fc10b497959413d8c1197/html5/thumbnails/11.jpg)
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.](https://reader036.fdocumentos.com/reader036/viewer/2022062418/552fc10b497959413d8c1197/html5/thumbnails/12.jpg)
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.](https://reader036.fdocumentos.com/reader036/viewer/2022062418/552fc10b497959413d8c1197/html5/thumbnails/13.jpg)
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.](https://reader036.fdocumentos.com/reader036/viewer/2022062418/552fc10b497959413d8c1197/html5/thumbnails/14.jpg)
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.](https://reader036.fdocumentos.com/reader036/viewer/2022062418/552fc10b497959413d8c1197/html5/thumbnails/15.jpg)
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.](https://reader036.fdocumentos.com/reader036/viewer/2022062418/552fc10b497959413d8c1197/html5/thumbnails/16.jpg)
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.](https://reader036.fdocumentos.com/reader036/viewer/2022062418/552fc10b497959413d8c1197/html5/thumbnails/17.jpg)
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.](https://reader036.fdocumentos.com/reader036/viewer/2022062418/552fc10b497959413d8c1197/html5/thumbnails/18.jpg)
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.](https://reader036.fdocumentos.com/reader036/viewer/2022062418/552fc10b497959413d8c1197/html5/thumbnails/19.jpg)
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.](https://reader036.fdocumentos.com/reader036/viewer/2022062418/552fc10b497959413d8c1197/html5/thumbnails/20.jpg)
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.](https://reader036.fdocumentos.com/reader036/viewer/2022062418/552fc10b497959413d8c1197/html5/thumbnails/21.jpg)
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?