6. CUDA
Até a terceira geração de GPUs, não era possível alterar o pipeline de processamento, apenas alguns estágios específicos. A linguagem Cg reflete essa limitação, permitindo apenas a criação de programas que rodem como vertex ou fragment programs. Com o advento da arquitetura unificada esse limite foi quebrado, e surgiu uma nova forma de programação para GPU, o CUDA (Compute Unified Device Architecture).
Diferentemente do Cg, o CUDA não é uma nova linguagem de programação, mas uma biblioteca C. Com restrições, qualquer código C pode rodar na GPU.
No CUDA, a GPU é vista como um co-processador genérico, e não apenas gráfico, não sendo mais necessário criar um contexto OpenGL para acessá-la.