A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "Extensões Multimídia Alunos: Daniel Machado de Faria – RA015783 Daniel Piccolo Gasparotto – RA015788 Professor: Rodolfo Jardim de Azevedo."— Transcrição da apresentação:

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

2 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

3 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)

4 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.

5 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

6 Como funcionam - Exemplo Uma instrução SIMD da IA-64: packed add

7 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

8 MMX - Curiosidade Números MMX tornam números PF inválidos

9 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

10 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

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

12 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).

13 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

14 SSE3 Extenção do SSE2 Melhoras e Otimizações

15 3DNow! em Opteron e AMD64 Conjunto completo MMX, 3DNow!, SSE e SSE2. Foram adicionados 8 registradores XMM e 8 GPR, além dos existentes

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

17 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

18 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); }

19 Exemplos – limite duplo

20 Exemplos – IA-64 Pixel Padding Shape Adaptative DCT Split Radix FFT

21 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?


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

Apresentações semelhantes


Anúncios Google