sdk - OpenCL/AMD: Deep Learning




neural-network gpgpu (6)

--- Ago 2017 Actualización de nuevas cosas interesantes sucedieron en el lado de AMD ---

ahora es posible ejecutar cualquier biblioteca en la mayoría del hardware AMD. Consulte aquí

A partir del 25 de octubre de 2015

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

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

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

  1. Theano

  2. Cafe

  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, de acuerdo con ese sitio (no lo he marcado yo mismo), proporciona alrededor de 261 imágenes por segundo o 22.5 millones de imágenes por día en un hardware AMD R9 Fury (capacitación). para comparar con nvidia K40, que puede procesar 40 millones de imágenes al día. de acuerdo con el sitio, puede dar la mitad del rendimiento en una sexta parte del dinero (considerando que k40 es una tarjeta de 3000 $ y la furia r9 es de alrededor de 600 $). sin embargo, usar cualquier tarjeta de consumidor le dará un problema sobre la memoria (vram), que es bastante importante en el aprendizaje profundo.

Antorcha 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 la antorcha. Sin embargo, no da una idea sobre el rendimiento. Aquí está el repositorio. Se mantiene activamente.

cltorch

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

También hay otros frameworks opencl para profundizar el aprendizaje. Tomará algún tiempo ordenarlos para ver si funcionan correctamente o no.

Mientras "buscaba en Google" e investigaba un poco, no pude encontrar ningún framework / sdk serio / popular para GPGPU-Computing científico y OpenCL en hardware AMD . ¿Hay alguna literatura y / o software que me perdí?

Especialmente estoy interesado en el aprendizaje profundo .

Por lo que sé, deeplearning.net recomienda el hardware NVIDIA y los marcos CUDA . Además, todos los grandes marcos de aprendizaje profundo que conozco, como Caffe , Theano , Torch , DL4J , ... se centran en CUDA y no planean admitir OpenCL / AMD .

Además, se pueden encontrar muchos artículos científicos, así como literatura correspondiente para tareas de aprendizaje profundo basadas en CUDA , pero casi nada para soluciones basadas en OpenCL / AMD .

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

¿Cuál es un buen comienzo para el aprendizaje profundo con OpenCL / AMD ? Cualquier literatura? Tutoriales? Fuentes diversas?


Consulte https://01.org/intel-deep-learning-framework : el Marco de aprendizaje profundo Intel® (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 puede portarlo al hardware de AMD. Lo bueno: podría ejecutarse en una MacBook Pro con gráficos Intel Iris.


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

  • multiplicación de la matriz de blas
  • gradientes
  • operaciones propias tales como: reducciones, argmin / argmax, operaciones por elemento (binario y unario)

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 de convnet en Linux está bien respaldada, pero nosotros ( http://vertex.ai ) estamos trabajando para expandir la integridad 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, todas Linux por ahora, pero también estamos trabajando para agregar Mac y Windows.


Edición 1 Vea la respuesta de Mikael Rousson : Amazon es ahora el camino a seguir, ya que puede "alquilar" potencia computacional de ellos.

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

Editar 3 Parece que TensorFlow ahora es mucho más aceptado que theano por lo que he actualizado la guía en consecuencia.

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

La mejor solución que tengo actualmente es:

  1. Instale el tensorflow biblioteca de tensorflow y utilice el soporte de GPU que existe y continúe actualizando a las últimas versiones de desarrollo.
  2. Use theano y use el soporte de GPU existente de manera similar al tensorflow
  3. Compre una tarjeta gráfica NVIDIA y úsela en una PC
  4. Si realmente necesita una solución en OpenCL y está dispuesto a codificar todo desde un alto nivel de comprensión (sin tutoriales), consulte DeepCL y posiblemente pyOpenCl .

He descubierto que cualquier solución que use OpenCL, por ejemplo, pyOpenCl , todavía no tiene interfaces fáciles de usar para Deep Learning, es decir, tomará más tiempo codificarla en un método alternativo que codificarla rápidamente y ejecutarla en una CPU. Dicho esto, sin embargo, aquí están las mejores bibliotecas alternativas de OpenCL para el aprendizaje profundo:

En desarrollo


TensorFlow ahora tiene soporte OpenCL en la roadmap .

Ver: adding .

Esperemos que no esté tan lejos de una versión que funcione.