Circuitos eletronicos, diodo

Disponível somente no TrabalhosFeitos
  • Páginas : 41 (10043 palavras )
  • Download(s) : 0
  • Publicado : 6 de abril de 2012
Ler documento completo
Amostra do texto
Computac¸a˜ o de alto desempenho utilizando CUDA

Bruno Cardoso Lopes, Rodolfo Jardim de Azevedo

1 Instituto de Computac¸a˜o – Universidade Estadual de Campinas (Unicamp) Caixa Postal 6176 – 13083-970 – Campinas – SP – Brasil

bruno.cardoso@gmail.com, rodolfo@ic.unicamp.br


Abstract. The last real time graphic processors in the market are implementa-tions based on the programmable stream processor model. This works presents the internals of these processors and the programming languages that were cre- ated to develop software to them, focusing on the NVIDIA 8 series and the CUDA programming model. With this new programming model and the new graphics cards, it is possible to obtain impressive gains in performance when comparing toconventional processors.

Resumo. As recentes arquiteturas de processamento gra´ fico em tempo real sa˜ o em sua maioria implementac¸o˜ es comerciais do modelo de stream processors programa´ veis. Este trabalho explora o funcionamento interno desta arquitetura e as linguagens de programac¸a˜ o criadas ao longo dos anos que facilitam a criac¸a˜ o de software, com o foco nas placas gra´ ficas daNVIDIA se´rie 8 e o modelo de programac¸a˜ o CUDA. Atrave´s deste modelo de programac¸a˜ o e das novas placas de v´ıdeo, e´ poss´ıvel obter ganhos de desempenho de 1 ou 2 ordens de grandeza em relac¸a˜ o aos processadores convencionais.


1. Introduc¸a˜ o

O processamento em tempo real envolvendo compressa˜o de imagens, processamento de sinais, ca´lculos para gra´ficos 3D (como arenderizac¸a˜o de pol´ıgonos) e codificac¸a˜o
de v´ıdeo e´
bastante complexo – envolve operac¸o˜ es matema´ticas dif´ıceis – requerendo
ca´lculos na ordem de bilho˜ es de operac¸o˜ es por segundo. O custo dessas operac¸o˜ es faz com que diversos fabricantes escolham desenvolver processadores espec´ıficos para m´ıdia. O custo e esforc¸o de desenvolvimento envolvidos sa˜o altos e o hardware na˜o e´flex´ıvel – na˜o se adapta facilmente a evoluc¸a˜o de novos algoritmos e programas de processamento de m´ıdia. Com o objetivo de atender a esta demanda por flexibilidade, surge a motivac¸a˜o para o uso de Stream Processors programa´veis.



Com a introduc¸a˜o dos Stream Processors programa´veis surgiu a necessidade de criar linguagens que pudessem possibilitar ao programador sua utilizac¸a˜o demaneira sim- ples. Essas linguagens foram evoluindo junto com as GPUs. Ambas ja´ dominam o mer- cado de desenvolvimento de jogos e disputam lugar no mercado de computac¸a˜o de alto desempenho.

A NVIDIA tem comercializado GPUs que sa˜o o estado da arte na implementac¸a˜o de Stream Processors, tratam-se das novas placas gra´ficas a partir das se´ries 8, Tesla e algumas Quadro. A novatecnologia apresentada pela NVIDIA veˆm acompanhada de um
1 INTRODUC¸ A˜ O 2


[pic]

Figura 1. Pilha de software. Fonte [5]


novo modelo de arquitetura e programac¸a˜o chamado CUDA (Compute Unified Device
Architecture).

A pilha de software (Figura 1) do CUDA, envolve uma API com suporte direto a diversas func¸o˜ es matema´ticas, primitivas decomputac¸a˜o gra´fica, bibliotecas, suporte ao runtime e ao driver, que otimiza e gerencia a utilizac¸a˜o de recursos diretamente com a GPU.

Inicialmente, os processadores destas placas na˜o eram flex´ıveis, atendendo apenas mercados restritos (jogos e aplicac¸o˜ es 3D) e, com o tempo, foram se tornando Stream Processors, cada vez mais flex´ıveis e programa´veis.

A arquitetura e omodelo de programac¸a˜o iniciais destas placas na˜o apresentavam propriedades que permitissem a sua utilizac¸a˜o para computac¸a˜o de problemas gene´ricos devido a fatores como: a dificuldade em aprender uma linguagem nova, restric¸o˜ es de uso quanto ao acesso a` memo´ ria DRAM das GPU’s e limitac¸a˜o na largura de banda nestes acessos.



Ilustrando o poder desta evoluc¸a˜o...
tracking img