¿Por qué Google TensorFlow usa OpenCL y no OpenGL? ¿Cuáles son las ventajas?

Buena pregunta.

Sí, en teoría, OpenGL es solo un estándar de representación gráfica y OpenCL es la opción lógica para implementar la computación genérica en las GPU.

Sin embargo, esa solicitud de función para OpenCL (soporte OpenCL · Problema # 22 · tensorflow / tensorflow) todavía está abierta casi 2 años después. OpenCL es solo una idea hasta que Deep Learning se use ampliamente en él. No me sorprendería si alguien lograra (unir los puntos …) encajonar a Google para que no implementara tensorflow para OpenGL directamente, entregando así un monopolio virtual en las GPU para el aprendizaje profundo a quien conoces …

Noté que en mi GPU anterior que no puede ayudar a tensorflow porque solo es compatible con Cuda 2.1, deeplearn.js (deeplearn.js) que se implementa a través de WebGL ejecuta algunas CNN mucho más rápido en esta GPU que los 4 núcleos de CPU i7 y 8 hilos. Pero tensorflow no puede usar eso.

El próximo marco de aprendizaje profundo que implementa la ejecución en versiones antiguas de OpenGL obtendrá mi voto.

OpenCL es un lenguaje de programación de GPU de propósito general, le permite acceder a la potencia computacional sin procesar de la GPU (como las matrices multiplicadas para DL). Por el contrario, OpenGL limita todo a términos gráficos como mallas.

OpenGL es una biblioteca de gráficos, mientras que OpenCL es una biblioteca de computación heterogénea que permite realizar cómputos en plataformas de hardware como GPU.

En los primeros tiempos, antes de que se introdujera OpenCL, los desarrolladores usaban algunos trucos y ajustes para poder utilizar las API existentes de OpenGL para realizar cálculos de propósito general (no solo gráficos) en GPU que usan las API de OpenGL, este enfoque se conocía como “GPGPU” (GPU de uso general), fue reemplazado más tarde por las API más limpias y la abstracción de programación presentada por OpenCL.

TensorFlow usó principalmente CUDA (biblioteca tipo Open-CL desarrollada por Nvidia y solo admite sus GPU) hasta que se agregó recientemente el soporte de OpenCL. Vea la discusión a continuación: https://github.com/tensorflow/te

More Interesting

¿Cómo decidimos qué algoritmo usar en el aprendizaje automático?

¿Cuál es la diferencia entre derivada de una función o pendiente de gradiente?

¿Cuál es el mejor artículo para entender cómo se mapea el vector de salida de RNN con un vocabulario para predecir la secuencia?

¿Es posible usar la red neuronal para predecir múltiples valores respetando ciertas condiciones?

¿Qué es apilar en el aprendizaje automático?

Si se le da una opción entre el aprendizaje automático y el Internet de las cosas como una opción, ¿cuál es la mejor para elegir, teniendo en cuenta el alcance y el futuro?

¿Por qué el submuestreo de características u observaciones mejora el rendimiento de GBM?

¿Cómo es trabajar en el equipo de Machine learning / Data Mining?

¿Qué importancia tienen las estructuras de datos y los modelos gráficos para el aprendizaje automático?

En la calificación crediticia, ¿cuáles son las ventajas y desventajas del aprendizaje automático en relación con las técnicas de regresión tradicionales?

En el modelado de datos, ¿podría ser una buena idea crear algorítmicamente una característica grande para activar las meta características actuales antes del modelado?

¿Cuáles son algunas de las ventajas de usar modelos de proceso gaussianos frente a SVM?

¿Cuáles son algunas aplicaciones de la vida real del aprendizaje automático además de las aplicaciones relacionadas con la web?

¿Cuál es la explicación de la fórmula de compensación de Bias Variance?

¿Cómo funcionan las redes neuronales convolucionales?