Project

General

Profile

História Cuda

Algumas linguagens de programação foram criadas para facilitar o uso das GPU e criar uma programação genérica conhecida por GPGPU (General-Purpose GPU) tal como AMD Stream, CG ou NVIDIA CUDA (C/C++, openCL, DirectCompute, Fortran, Java ou Python), a fim de ser mais intuitiva a produção de algoritmos para as GPU. Estes algoritmos usam programação paralela escalável ao numero de unidades de processamento da GPU (que é extremamente variável), e que acima de tudo são pensados para uso cientíco, deixando cada vez mais para trás a barreira dos grácos.

Prós e contras da escolha da arquitectura CUDA:
Prós:
1. Uma arquitectura de hardware pensada de raiz para programação geral, permitindo um set de
instruções bastante amplo e usável, pensando e optimizando operações como multiplicações
e adições, facilitando assim de uma forma dramática a vida do programado;
2. Para além do set de instruções renovado, há a possibilidade de correr milhares de Threads
(os de execução distintos de programas, muito semelhantes a processos geridos por unidades
de processamento) ao mesmo tempo;
3. Um pormenor que pode fazer a diferença desta arquitectura é que é do estilo "C like", ou seja,
programar em CUDA C é praticamente programar em C enriquecido de novas instruções e
directrizes próprias do CUDA; isto tem implicações óbvias na curva de aprendizagem dum
programador de C/C++;

Contras:
1. Uma arquitectura tão boa assim tinha de ter o outro lado da moeda e o da arquitectura CUDA é que está bloqueada ao vendedor NVIDIA, tornando assim os algoritmos
que usem CUDA bloqueados a este vendedor.Sabe-se que a NVIDIA está a expandir algumas possibilidades a m de colmatar esta lacuna, tal como permitir compilar em
CUDA a linguagem openCL que é usada em qualquer GPU de qualquer vendedor. A arquitectura CUDA é extremamente recente (surgiu em 2007) fazendo ainda mais a
possibilidade de aplicação OpenGl numa alternativa pouco visível.