sdk - OpenCL / AMD:Aprendizaje profundo




neural-network gpgpu deep-learning (8)

TensorFlow ahora tiene soporte OpenCL en la roadmap .

Ver: adding .

Esperemos que no tan lejos de una versión funcional.

Mientras hacía "googl" y investigaba un poco, no pude encontrar ningún framework / sdk serio / popular para el hardware científico de GPGPU y OpenCL en AMD . ¿Hay alguna literatura o software que haya olvidado?

Especialmente estoy interesado en el aprendizaje profundo .

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

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

¿Hay alguna posibilidad de que los marcos científicos nuevos o existentes se muestren para las soluciones basadas en OpenCL / AMD en 2015/16?

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


PlaidML ( https://github.com/plaidml/plaidml ) es un tiempo de ejecución de aprendizaje profundo totalmente abierto que se ejecuta sobre OpenCL y se integra con Keras para proporcionar una API familiar para el usuario. El README en el repo tiene un estado más detallado, actualmente la inferencia de convnet en Linux es bien soportada, pero nosotros ( http://vertex.ai ) estamos trabajando para expandir la integridad y el soporte de la plataforma lo más rápido que podamos. 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.



Consulte https://01.org/intel-deep-learning-framework : el Marco de aprendizaje profundo de Intel® (IDLF) proporciona un marco unificado para las plataformas Intel® que aceleran las redes neuronales profundas convolucionales. Es de código abierto, por lo que también podría llevarlo al hardware de AMD. Lo mejor: podría funcionar en una MacBook Pro con gráficos Intel Iris.



Estoy escribiendo el soporte de opencl 1.2 para Tensorflow. https://github.com/hughperkins/tensorflow-cl Actualmente es compatible con:

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

Edit 1 Vea la respuesta de Mikael Rousson : Amazon ahora es el camino hacia adelante ya que puede "rentar" el poder computacional de ellos.

Editar 2 He creado una serie de guías sobre cómo configurar 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. Pasé la mayor parte de la semana investigando todas las posibles soluciones provisionales 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 tensorflow y utilice la compatibilidad de GPU existente y continúe actualizándose a las últimas versiones de desarrollo.
  2. Use theano y use el soporte de GPU existente de forma similar a tensorflow
  3. Compre una tarjeta gráfica NVIDIA y úsela en una 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 a DeepCL y posiblemente a pyOpenCl .

He encontrado que cualquier solución que use OpenCL, por ejemplo, pyOpenCl , aún no cuenta con interfaces fáciles de usar para Deep Learning, es decir que llevará más tiempo codificarlo en un método alternativo que simplemente codificarlo rápidamente y ejecutarlo en una CPU. Sin embargo, dicho esto, aquí están las mejores bibliotecas alternativas de OpenCL para el aprendizaje profundo:

En desarrollo


La razón por la que sudo funciona en Linux y Mac OS X es que a veces los permisos en ~ / .android se configuran de forma incorrecta. Si tiene este problema una y otra vez, y prefiere no escribir sudo cada vez que quiera actualizar su SDK, vaya a ~ / .android y asegúrese de que su cuenta sea propietaria y tenga permisos para leer y escribir todos los archivos.

En mi caso, encontré que la raíz era propietaria de varias carpetas, incluido el directorio de caché, cd ~/.android sudo chown -R <yourusername> * solucioné el problema. Si le preocupa la seguridad de su sistema, también puede especificar un grupo como: sudo chown -R <yourusername>:<yourgroup> * AND

También puede especificar los archivos y directorios individuales que deben cambiarse si no le gusta el comodín. sudo chown --R <yourusername> cache por ejemplo.

Gracias a la gente here por averiguarlo.