Los días de uso de Cg o GLSL para GPGPU casi han terminado. Sin embargo, se utilizan mucho para gráficos 3D y se seguirán utilizando de esta manera en el futuro previsible. GLSL y Cg solo se usaron para el cálculo científico porque eran el único juego en la ciudad. No había otra alternativa para hacer un cálculo de propósito general en la GPU.
La única razón real para usar GLSL para GPGPU en este momento es ser independiente de la plataforma. Si absolutamente debe poder ejecutar su software en una variedad de GPU, por el momento, todavía es el camino a seguir. OpenCL cambiará esto en el futuro cercano, sin embargo.
La razón de que la computación científica se está moviendo a cosas como CUDA y OpenCL son muchas. Estas bibliotecas le brindan un mejor acceso al hardware de la GPU y mucha más transparencia sobre los cuellos de botella de rendimiento. Esto hace que sea más fácil obtener el máximo rendimiento de la GPU. CUDA y OpenCL también ofrecen características (por ejemplo, memoria compartida) que simplemente no están disponibles en GLSL o Cg, pero son cruciales para obtener un buen rendimiento en muchos algoritmos (por ejemplo, la transposición de matriz). Otra razón es que CUDA y OpenCL le dan acceso a la GPU sin necesidad de un contexto de gráficos, lo que le permite, entre otras cosas, usar de forma remota la GPU de una computadora para el cálculo.
"... no hay la misma comunidad y el apoyo de la industria detrás de Cg que una vez hubo ..." Esta es parte de la razón por la que pregunto: CUDA, OpenCL, etc. tiene un gran impulso en este momento ... ¿Se irá dentro de un año? Seguramente apestaría si invierto una tonelada de tiempo en portar mi aplicación y entonces el software o hardware recibe poco o ningún soporte. – Pete
Tengo la sensación de que al menos uno, si no ambos, CUDA y OpenCL aún tendrán un fuerte respaldo en el futuro. El uso de GPU para computación de propósito general es algo que mucha gente utiliza para que la menor cantidad de personas que hacen sombreadores. – Apreche
Si "desaparecerá dentro de un año?" es su preocupación, entonces OpenCL es la apuesta más segura. CUDA solo se ejecutará en hardware NVidia; Stream SDK de AMD/ATI (también conocido como CAL) solo se ejecutará en su hardware; ninguno correrá en Larrabee; Los sombreadores de cómputo de DirectX 11 deben ejecutarse en hardware de múltiples fabricantes, pero solo en Vista o Windows 7, no en Windows XP o Linux o Mac OS. OpenCL promete ser el primer conjunto de herramientas que realmente es estándar en todas las plataformas, por lo que la sabiduría convencional es que va a sobrevivir y los otros morirán. –