-CUDA é a tentativa da NVIDIA de gerar soluções automáticas para o paradigma de programação de GPUs, que ainda está longe da realidade -inicialmente não tinha capacidade de atender requisitos de programação para propósito geral devido ao sombreamento de pixels não eram ideais e os modelos de programação eram deselegantes (semenlhante a RTSL) -placas que suportam -SIMT (Single Instruction Multiple Thread) escalona warps (32 threads) de multiprocessador -API esconde detalhes do hardware, permitindo que a NVIDIA mude suas placas enquanto mantêem a API, permitindo que softwares já desenvolvidos continuem compatíceis (precisando apenas utilizar os novos recursos para se conseguir um desempenho otimizado) -API marcadores e diretivas para identificar o que é executado ou não pela GPU biblioteca de tempo de execução, com um componente para gerenciar operações do host, um do device (funções específicas da GPU) e outro de tipos adicionais e subconjunto de C que roda em ambos -modelo de memória: registradores memória compartilhada memória constante memória global memória de textura -compilador nvcc preprocessador EDG identifica e separa o código para cada arquitetura código da GPU em formato cubin