Pregunta

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

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

¿Fue útil?

Solución

Estos son algunos ejemplos excelentes en el SDK de nvidia:

http://developer.nvidia.com/object/get-opencl.html

Otros consejos

Los algoritmos que está describiendo no son simples ni introductorios desde la perspectiva de la programación de GPU. La razón por la cual CUDA tiene ejemplos en estas áreas es que ha existido el tiempo suficiente para que las personas hayan 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ómputo de CPU y NVIDIA requiere firmar un NDA para obtenerlo. En pocas palabras, OpenCL no ha existido el tiempo suficiente para que se hayan desarrollado y demostrado ejemplos completos como estos.

Dicho esto, obtener acceso a los controladores OpenCL de NVIDIA no es difícil. Puede averiguar cómo hacerlo en sus foros aquí . Supongo que la distribución 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 que usted se refiera a su trabajo. Sin embargo, no esperaría demasiadas sorpresas. El rendimiento de OpenCL debe estar aproximadamente a la par con el rendimiento de CUDA una vez que esté ampliamente disponible y sea compatible.

Nuestro equipo ha estado trabajando en algoritmos y aceleración OpenCL y nos gustaría sugerir el artículo

http: //www.cmsoft.com.br/index.php?view=article&catid=1:latest-news&id=247:opencl-simulated-annealing

como una implementación de muestra del algoritmo de recocido simulado para la minimización.

Puedes probar los siguientes dos libros:

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

El libro de programación de OpenCL ... Programación en paralelo para CPU y GPU MultiCore (componentes del historial

Ambos detallan cómo explicar por qué se realizó el desarrollo y dónde se pueden encontrar los verdaderos bonos.

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top