2010-02-04 10 views
6

Soy un programador C++ que desarrolla algoritmos de imagen y video, ¿debería aprender Nvidia CUDA? o es una de estas technlogies que desaparecerá?Aprender Nvidia CUDA

Respuesta

11

CUDA es actualmente una tecnología de proveedor único de NVIDIA y por lo tanto no tiene la compatibilidad de varios proveedores que OpenCL hace.

Sin embargo, es más maduro que OpenCL, tiene great documentation y las habilidades aprendidas al usarlo se transferirán fácilmente a otras herramientas de procesamiento de datos paralelas.

Como un ejemplo de esto, lea el Data Parallel Algorithms por Steele y Hillis y luego a ver el Nvidia tutorials - theres un vínculo claro entre los dos sin embargo, el papel Steele/Hillis fue escrita durante 20 years antes de la introducción de CUDA.

Finalmente, el FCUDA Projects está trabajando para permitir que los proyectos de CUDA se dirijan a hardware que no sea nvidia (FPGA).

2

Creo que debería quedarse con OpenCL, que es un estándar abierto y compatible con ATI, nVidia y más. CUDA podría no desaparecer en los próximos años, pero de todos modos no es compatible con GPU que no sean nVidia.

+0

¿Por qué el voto a favor? – AndiDog

3

CUDA debería quedarse por un tiempo, pero si recién está empezando, le recomiendo mirar OpenCL o DirectCompute. Ambos se ejecutan tanto en ATI como en hardware NVidia, además de trabajar también en las unidades vectoriales (SSE) de las CPU.

2

OpenCL puede tomar algún tiempo para convertirse en dominante, pero me pareció aprender CUDA muy informativo y no creo que CUDA va a estar fuera del centro de atención en el corto plazo. Además, CUDA es lo suficientemente fácil como para que el tiempo que lleva aprenderlo sea mucho más corto que la vida útil de CUDA.

2

Esta es la era de la informática de alto rendimiento, la informática paralela. CUDA y OpenCL son las tecnologías emergentes de GPU Computing que en realidad es una informática de alto rendimiento. Si usted es un apasionado programador y está dispuesto a lograr un punto de referencia en algoritmos paralelos, realmente debería optar por estas tecnologías. La parte paralela de datos de su programa se ejecutará en una fracción de segundo en la arquitectura GPU de muchos núcleos, lo que generalmente lleva mucho más tiempo en su CPU.

Cuestiones relacionadas