OpenCL
- interfaz de su código de producción
- portable entre diferentes hardware de gráficos
- operaciones limitadas, pero los atajos ya predispuestas
CUDA
lenguaje
- separado (CUDA C)
- hardware de NVIDIA solamente
- un control casi total sobre el código (que codifica en un lenguaje similar a C)
- gran cantidad de herramientas de perfilado y depuración
Bottom línea - OpenCL es portátil, CUDA es nVidia solamente. Sin embargo, al ser un lenguaje independiente, CUDA es mucho más poderoso y tiene muchas herramientas realmente buenas.
- Facilidad de uso - OpenCL es más fácil de usar fuera de la caja, pero una vez que la configuración del entorno de codificación CUDA es casi como la codificación en C
- Comunidad y Documentación - ambos tienen extensa documentación y ejemplos, sin embargo creo que CUDA tiene mejor.
- Rendimiento - CUDA permite un mayor control, por lo tanto, se puede ajustar mejor para un mayor rendimiento.
- Futuro - difícil decir realmente.
Ver también: http://stackoverflow.com/questions/2384930 –