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

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

Vetorização MO801/MC972. Motivação Algumas operações usam muito menos bits que os disponíveis em hardware –Ex.: Somas de 8 bits de cores para modificar.

Apresentações semelhantes


Apresentação em tema: "Vetorização MO801/MC972. Motivação Algumas operações usam muito menos bits que os disponíveis em hardware –Ex.: Somas de 8 bits de cores para modificar."— Transcrição da apresentação:

1 Vetorização MO801/MC972

2 Motivação Algumas operações usam muito menos bits que os disponíveis em hardware –Ex.: Somas de 8 bits de cores para modificar uma figura –O somador em hardware é capaz de somar 32 bits –Como aproveitá-lo?

3 Somador de 1 bit Como fazer um somador de 8 bits? Como fazer um somador de 32 bits? + A B C Carry in Carry out

4 Somador de 2 bits?

5 Somador de 2 bits + A0 B0 C0 Carry in Carry out + A1 B1 C1 Carry in Carry out

6 E a volta? Como transformar um somador de 32 bits em 4 de 8 bits? Isso é válido para todas as operações? –Para quais operações é válido? Soma? Subtração? Multiplicação? Operações lógicas? Operações de ponto flutuante?

7 Visão geral Registrador de 32 bits ++++ ====

8 Outras operações úteis Soma com saturação Operações horizontais Empacotamento/desempacotamento

9 Soma com saturação Suponha cada canal de cor representado por 8 bits, o que acontece quando se soma 1 ao valor 255? –Sem saturação: = 0 –Com saturação: = 255 Qual operação é melhor?

10 Operações horizontais Registrador de 32 bits ++ +

11 Empacotamento e Desempacotamento Nem sempre os dados estão no formato correto –Empacotamento: Coloca dados quebrados num formato para ser manipulado pelas instruções vetoriais –Desempacotamento: Volta ao modo anterior

12 Conjuntos de Instruções Processadores possuem seus conjuntos de instruções vetoriais –Em geral, chamadas de extensões multimídia As vezes é melhor utilizá-las no lugar das instruções convencionais –Ex.: Ponto flutuante na arquitetura Intel –Ex.: SPE da arquitetura Cell

13 Como programar? Solução óbvia –Programas em assembly Solução desejada –Detecção e uso automático pelo compilador –Portabilidade Alternativa –Intrinsics (macros) em linguagens de alto nível –Pouca portabilidade Solução atual –O compilador já faz algo –Recomenda-se que o programador utilize intrinsics

14 Vetorizar ou Paralelizar? Melhor abordagem –Vetorizar primeiro –Paralelizar depois Não existe OpenMP para vetorização Geralmente um dos dois já satisfaz o requisito de desempenho –Comece pelo mais fácil em cada caso Divida o programa em níveis de granularidade –Vetorize o mais baixo –Paralelize o mais alto

15 Questões gerais As arquiteturas possuem instruções vetoriais. Por que a vetorização não está sistematizada? Você já trabalhou em algo que precisava de desempenho? –Realmente precisamos de mais desempenho? –Você tentou vetorizar algum código?


Carregar ppt "Vetorização MO801/MC972. Motivação Algumas operações usam muito menos bits que os disponíveis em hardware –Ex.: Somas de 8 bits de cores para modificar."

Apresentações semelhantes


Anúncios Google