2009-09-14 11 views
5

Estoy buscando algunos ejemplos introductorios a OpenCL que ilustren los tipos de aplicaciones que pueden experimentar grandes aumentos de velocidad (por ejemplo, 50x-1000x). Cuda tiene muchos buenos ejemplos, pero no he encontrado lo mismo para OpenCL.Ejemplos de OpenCL con benchmarks

Un buen ejemplo podría ser la optimización global de las funciones complejas a través de enjambres de partículas, recocido simulado, algoritmos evolutivos, optimización de colonia de hormigas, etc.

Respuesta

4

Los algoritmos que está describiendo no son simples ni introductoria desde la perspectiva de la programación de la GPU . La razón por la cual CUDA tiene ejemplos en estas áreas es que ha existido lo suficiente como para que la gente haya desarrollado estos ejemplos. Actualmente no hay una versión pública de OpenCL que se ejecute en GPU. Tanto ATI como NVIDIA están ofreciendo versiones beta de sus controladores OpenCL, pero ATI solo admite cómputos de CPU y NVIDIA requiere firmar un NDA para obtener. En pocas palabras, OpenCL no ha existido lo suficiente como para que se hayan desarrollado y demostrado ejemplos completos como estos.

Dicho esto, tener acceso a los controladores OpenCL de NVIDIA no es difícil. Puede averiguar cómo hacerlo en sus foros here. Supongo que la distribución de OpenCL contiene algunos programas de muestra para ayudarlo a comenzar.

Esto también significa que es una excelente oportunidad para desarrollar algunos de estos puntos de referencia y publicar sus resultados. Entonces las personas se referirán a su trabajo en lugar de referirse a su trabajo. Aunque no esperaría demasiadas sorpresas. El rendimiento de OpenCL debe estar a la par del rendimiento de CUDA una vez que esté ampliamente disponible y sea compatible.

+3

"Actualmente no hay una versión públicamente disponible de OpenCL que se ejecute en GPU." No estoy seguro de si este fue el caso cuando respondió en septiembre, pero definitivamente no es el caso ahora. AMD (ATI) y Nvidia tienen implementaciones OpenCL que funcionan muy bien. – dwf

0

usted podría tratar de los siguientes dos libros:

Programación procesadores masivamente paralelos ... Un enfoque práctico (NVIDIA) (capítulos 1 y 2)

La programación OpenCL libro ... Programación paralela para MultiCore CPU y la GPU (componentes historia

Ambas explican detalladamente por qué se realizó el desarrollo y dónde se pueden encontrar las verdaderas bonificaciones.

No estoy seguro acerca de la evaluación comparativa, tampoco he tenido suerte allí tampoco.