OpenCL / AMD: Aprendizaje profundo


Mientras "googl'ing" y haciendo algunas investigaciones no pude encontrar ningún framework/sdk serio/popular para la computación científica GPGPU y OpenCL en AMD hardware. ¿Hay alguna literatura y/o software que me haya perdido?

Especialmente estoy interesado en deep learning.

Por lo que sé deeplearning.net recomienda hardware NVIDIAy marcos CUDA. Además, todos los grandes marcos de aprendizaje profundo que conozco, como Caffe, Theano, Antorcha, DL4J, ... están enfocados en CUDA y no planean soportar OpenCL/AMD .

Además, uno puede encontrar un montón de artículos científicos, así como la literatura correspondiente para CUDA basado en tareas de aprendizaje profundo, pero casi nada para OpenCL/AMD soluciones basadas.

¿Existe alguna posibilidad de que aparezcan marcos científicos nuevos o existentes para soluciones basadas en OpenCL / AMD en 2015/16?

¿Cuál es un buen comienzo para deep learning con OpenCL/AMD? Cualquier literatura? Tutoriales? Miscelánea fuentes?

Author: daniel451, 2015-06-03

8 answers

Editar 1 Ver Respuesta de Mikael Rousson - Amazon es ahora el camino a seguir, ya que se puede "alquilar" el poder computacional de ellos.

Edit 2 He creado una serie de guías sobre cómo configurar instancias de Amazon EC2 para Aprendizaje profundo con theano. Es mucho más conveniente que correr en una máquina personal.

Editar 3 Parece que TensorFlow es ahora mucho más ampliamente aceptado que theano así que he actualizado la guía consecuentemente.

He estado en la misma situación que usted, ya que tengo un MacBook Pro con gráficos Intel Iris. He pasado la mayor parte de una semana buscando todas las soluciones posibles y sería más que bienvenido a alternativas a las que ofrezco.

La mejor solución que tengo actualmente es:

  1. Instala la biblioteca python tensorflow y utilizar lo que hay soporte de GPU y continuar actualizando al último desarrollo versiones.
  2. Uso theano - y usar soporte de GPU existente de manera similar a tensorflow
  3. Compre una tarjeta gráfica NVIDIA y úsela en un PC
  4. Si necesitas absolutamente una solución en OpenCL y estás dispuesto a codificar todo desde un alto nivel de comprensión (sin tutoriales) mira DeepCL y posiblemente PyOpenCL.

He encontrado que cualquier solución que use OpenCL, por ejemplo PyOpenCL , todavía no tiene fácil de usar interfaces para aprendizaje profundo, es decir, tomará más tiempo codificarlo en un método alternativo que simplemente codificarlo rápido y ejecutarlo en una CPU. Dicho esto, sin embargo, aquí están las mejores bibliotecas OpenCL alternativas para el aprendizaje profundo:

En Desarrollo

 27
Author: Alexander McFarlane,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-28 16:13:38

- - - Actualización de agosto de 2017 nuevas cosas geniales sucedieron en el lado de AMD - - -

Ahora es posible ejecutar cualquier biblioteca en la mayoría de hardware de AMD Marque aquí

A 25 de octubre de 2015

Parece que AMD y otros han extendido sus manos en el desarrollo de varios marcos acelerados OpenCL para deeplearning. Así que sí, el soporte OpenCL ahora existe para deeplearning:)

Esta es una lista de framework o herramientas aceleradas de OpenCL que han sido desarrollado teniendo en cuenta principalmente el aprendizaje profundo. Espero que se actualicen en los próximos años

Sabemos que en este momento (25 de octubre de 2015) hay tres marcos de aprendizaje profundo que son muy muy populares entre los investigadores y ha visto algunos productos comerciales

  1. Theano

  2. Caffe

  3. Antorcha


Caffe tiene un soporte OpenCL bastante bueno porque amd desarrolló una versión completa de caffe que admite casi todas las características de caffe y también se está desarrollando activamente. se llama OpenCL Caffe. y aquí está el repositorio

OpenCL Caffe

Si está pensando en el rendimiento, entonces de acuerdo con ese sitio(yo no lo he marcado en el banco) da alrededor de 261 imágenes por segundo o 22.5 millones de imágenes por día en un hardware AMD R9 Fury(entrenamiento). para comparar con nvidia K40, que puede procesar 40 millones de imágenes al día. tan según el sitio puede dar funcionamiento medio en un sexto de dinero.(teniendo en cuenta k40 es 3000 fury tarjeta y r9 furia es de alrededor de 600 fury). sin embargo, el uso de cualquier tarjeta de consumo le dará un problema sobre la memoria(vram) que es bastante importante en el aprendizaje profundo.


Torch en los últimos días también parece tener un soporte OpenCL decente. Sin embargo es mantenido por una sola persona. Afirma tener soporte completo para todas las características de torch. Sin embargo, no da una idea sobre el rendimiento. Aquí está el repositorio. es activamente mantener.

Cltorch


Actualmente no parece haber un backend opencl decente para el framework theano, pero el trabajo está en progreso. y los programas simples se pueden hacer con la versión actual.


También hay otros frameworks opencl para deeplearning. Tomará algún tiempo clasificarlos para ver si funcionan correctamente o no.

 16
Author: Yeasin Ar Rahman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-08-26 16:05:18

Una alternativa es usar instancias de GPU en Amazon Web Services. Puede encontrar AMI con paquetes de aprendizaje profundo de uso común ya instalados. Por ejemplo:

Consejo: utilice instancias spot para obtener un precio más barato (alrededor de 10 centavos/hora por un g2, 2xlarge).

 9
Author: Mikael Rousson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-09-21 08:18:47

PlaidML ( https://github.com/plaidml/plaidml ) es un tiempo de ejecución de aprendizaje profundo de código abierto que se ejecuta sobre OpenCL y se integra con Keras para proporcionar una API familiar orientada al usuario. El README en el repositorio tiene un estado más detallado, actualmente la inferencia convnet en Linux está bien soportada pero nosotros (http://vertex.ai ) están trabajando para ampliar la exhaustividad y el soporte de la plataforma lo más rápido posible. Nuestras máquinas de integración continua incluyen una variedad de GPU AMD y NVIDIA, todo Linux por ahora, pero también estamos trabajando en la adición de Mac y Windows.

 7
Author: Choong Ng,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-10-23 19:23:14

Estoy escribiendo soporte opencl 1.2 para Tensorflow. https://github.com/hughperkins/tensorflow-cl Actualmente soporta:

  • multiplicación de matrices blas
  • gradientes
  • operaciones propias tales como: reducciones, argmin/argmax, operaciones por elemento (binario y unario)
 5
Author: Hugh Perkins,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-26 02:56:57

TensorFlow ahora tiene soporte OpenCL en la hoja de ruta .

Ver: Problema de Github.

Esperemos que no muy lejos de una versión de trabajo.

 4
Author: salle55,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-06 14:06:37

Por favor, echa un vistazo https://01.org/intel-deep-learning-framework - Intel® Deep Learning Framework (IDLF) proporciona un marco unificado para las plataformas Intel® que aceleran las Redes Neuronales Convolucionales Profundas. Es de código abierto, por lo que también podría portarlo al hardware de AMD. Lo bueno: podría ejecutarse en un MacBook Pro con gráficos Intel Iris.

 1
Author: Robert Ioffe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-12 00:40:33

Echa un vistazo a la plataforma ROCm , que es impulsada por AMD. Esta es la primera plataforma de código abierto de clase HPC/hiperescala para computación GPU que también es independiente del lenguaje de programación.

Específicamente:

 1
Author: AmitB,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-12-28 18:41:14