sdk - OpenCL/AMD: Deep Learning
neural-network gpgpu (8)
--- 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.
-
Theano
-
Cafe
-
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
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.
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.
Echa un vistazo a la plataforma ROCm , que es impulsada por AMD. Esta es la primera plataforma de código abierto HPC / Hyperscale para computación GPU que también es independiente del lenguaje de programación.
Específicamente:
-
Para un aprendizaje profundo, consulte https://rocm.github.io/dl.html
-
Para OpenCL, ver:
-
Puede encontrar tutoriales útiles aquí: https://rocm.github.io/tutorials.html
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.
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:
- Antorcha: https://github.com/torch/torch7/wiki/Cheatsheet#ec2-public-ami
- Theano + Caffe: https://www.kaggle.com/forums/f/208/getting-started/t/11505/an-aws-ami-mainly-for-deep-learning
Consejo: use instancias spot para obtener un precio más barato (alrededor de 10 centavos / hora para un g2.2xlarge).
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:
-
Instale el
tensorflow
biblioteca detensorflow
y utilice el soporte de GPU que existe y continúe actualizando a las últimas versiones de desarrollo. -
Use
theano
y use el soporte de GPU existente de manera similar altensorflow
- Compre una tarjeta gráfica NVIDIA y úsela en una PC
- 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
está adding soporte OpenCL una vez que las mejoras aEigen
y otras dependencias hayan finished -
theano
está agregando soporte a OpenCL a través declBLAS
-
Caffe
está en las etapas de desarrollo de agregar compatibilidad con OpenCL, pero un poco detrás detheano
en progreso, parece