OpenCL / AMD: Deep Learning

Pendant que je faisais des recherches et que je faisais des recherches, je ne pouvais pas trouver de framework / sdk sérieux / populaire pour le GPGPU-Computing scientifique et OpenCL sur le matériel AMD . Y a-t-il de la documentation et / ou un logiciel que j’ai manqué?

Surtout je m’intéresse à l’apprentissage en profondeur .

Pour tout ce que je sais, deeplearning.net recommande le matériel NVIDIA et les frameworks CUDA . De plus, tous les grands systèmes de formation en profondeur que je connais, tels que Caffe , Theano , Torch , DL4J , … se concentrent sur CUDA et ne prévoient pas de prendre en charge OpenCL / AMD .

En outre, on peut trouver de nombreux articles scientifiques ainsi que la documentation correspondante pour les tâches d’apprentissage en profondeur basées sur CUDA , mais pratiquement rien pour les solutions basées sur OpenCL / AMD .

Y a-t-il une chance que des frameworks scientifiques nouveaux ou existants apparaîtront pour les solutions basées sur OpenCL / AMD en 2015/16?

Qu’est-ce qu’un bon début pour l’apprentissage en profondeur avec OpenCL / AMD ? Toute la littérature? Tutoriels? Sources diverses?

Edit 1 Voir la réponse de Mikael Rousson – Amazon est maintenant la voie à suivre car vous pouvez “louer” la puissance de calcul de leur part.

Edit 2 J’ai créé une série de guides sur la configuration des instances Amazon EC2 pour Deep Learning avec theano . C’est beaucoup plus pratique que d’utiliser une machine personnelle.

Edit 3 Il semble que TensorFlow soit maintenant beaucoup plus largement accepté que theano donc j’ai mis à jour le guide en conséquence.

J’ai été dans la même situation que vous avec un MacBook Pro avec des graphiques Intel Iris. J’ai passé la plus grande partie d’une semaine à examiner toutes les solutions possibles et je serais plus que ravi de proposer des alternatives à celles que je propose.

La meilleure solution que j’ai actuellement consiste à:

  1. Installez le tensorflow bibliothèque python et tensorflow ce qu’il ya de support GPU pour continuer à mettre à jour les dernières versions de développement.
  2. Utilisez theano – et utilisez le support GPU existant de la même manière que tensorflow
  3. Achetez une carte graphique NVIDIA et utilisez-la sur un PC
  4. Si vous avez absolument besoin d’une solution dans OpenCL et que vous souhaitez tout coder à partir d’un niveau de compréhension élevé (pas de tutoriels), consultez DeepCL et éventuellement pyOpenCl .

J’ai trouvé que toute solution utilisant OpenCL, par exemple pyOpenCl , ne dispose pas encore d’interfaces conviviales pour Deep Learning, c’est-à-dire qu’il faut plus de temps pour la coder que de la coder rapidement et de l’exécuter sur un processeur. Cela dit, voici les meilleures bibliothèques OpenCL alternatives pour l’apprentissage en profondeur:

  • Python – DeepCL
  • Jonathan’s Torch7 Utility Library – C ++

En développement

  • tensorflow ajoute le support OpenCL une fois les améliorations d’ Eigen et d’autres dépendances terminées
  • theano ajoute le support à OpenCL par clBLAS
  • Caffe est en phase de développement de l’ajout du support OpenCL mais un peu en retard, il semble

— août 2017 Mise à jour de nouvelles choses cool sur le côté AMD —

il est maintenant possible d’exécuter une bibliothèque sur la plupart des matériels AMD.

Au 25 octobre 2015

il semble qu’AMD et d’autres ont étendu leurs efforts sur le développement de plusieurs frameworks accélérés OpenCL pour le deeearning. Donc oui, le support OpenCL existe maintenant pour deeplearning 🙂

Ceci est une liste de framework ou d’outils accélérés OpenCL développés en gardant à l’esprit l’apprentissage en profondeur. J’espère qu’ils seront mis à jour au cours des prochaines années

Nous soaps maintenant (25 octobre 2015) qu’il existe trois frameworks d’apprentissage approfondi très populaires auprès des chercheurs et qui ont vu des produits commerciaux

  1. Theano

  2. Caffé

  3. Torche


Caffe a un très bon support OpenCL car il a développé une version complète de caffe qui supporte presque toutes les fonctionnalités de caffe et qui est en cours de développement. il s’appelle OpenCL Caffe. et voici le repository

OpenCL Caffe

Si vous pensez à la performance puis, selon ce site (je ne l’ai pas fait moi-même), cela donne environ 261 images par seconde ou 22,5 millions d’images par jour dans un matériel AMD R9 Fury (formation). comparer avec nvidia K40, qui peut traiter 40 millions d’images par jour. Ainsi, selon le site, il peut donner une demi-performance en un sixième d’argent (en considérant que k40 est de 3000 $ carte et que la fureur r9 se situe autour de 600 $). Cependant, l’utilisation d’une carte grand public vous posera un problème de mémoire (vram), ce qui est très important dans l’apprentissage en profondeur.


La torche ces derniers jours semble également avoir un support OpenCL décent. Cependant, il est maintenu par une seule personne. Il prétend avoir un support complet pour toutes les fonctionnalités de la torche. Cependant, cela ne donne aucune idée de la performance. Voici le repository il est activement maintenu.

cltorch


Actuellement, il ne semble pas y avoir de backend opencl décent pour le framework mais les travaux sont en cours. et des programmes simples peuvent être réalisés avec la version actuelle.


Il existe d’autres frameworks opencl pour le deeplearning. Il faudra un certain temps pour les régler pour voir si elles fonctionnent correctement ou non.

Une alternative consiste à utiliser des instances GPU sur Amazon Web Services. Vous pouvez trouver des AMI avec des packages de formation approfondie couramment utilisés déjà installés. Par exemple:

Conseil: utilisez des instances ponctuelles pour obtenir un prix moins élevé (environ 10 cents / heure pour un g2.2xlarge).

PlaidML ( https://github.com/plaidml/plaidml ) est un runtime d’apprentissage en profondeur entièrement open source qui s’exécute au-dessus d’OpenCL et s’intègre à Keras afin de fournir une API familière aux utilisateurs. Le README dans le repo a un statut plus détaillé, actuellement l’inférence de convnet sur Linux est bien supscope mais nous ( http://vertex.ai ) travaillons à étendre la complétude et le support de la plateforme aussi rapidement que possible. Nos machines d’continuous integration incluent un assortiment de GPU AMD et NVIDIA, tous Linux pour l’instant, mais nous travaillons également à l’ajout de Mac et de Windows.

J’écris le support opencl 1.2 pour Tensorflow. https://github.com/hughperkins/tensorflow-cl Prend actuellement en charge:

  • multiplication de masortingce blas
  • des dégradés
  • Opérations propres telles que: réductions, argmin / argmax, opérations par élément (binarys et unaires)

TensorFlow prend désormais en charge OpenCL sur la feuille de route .

Voir: Problème Github .

Espérons que ce n’est pas si loin d’une version de travail.

Veuillez consulter https://01.org/intel-deep-learning-framework – Le cadre Intel® Deep Learning Framework (IDLF) fournit une infrastructure unifiée pour les plates-formes Intel® accélérant les réseaux neuronaux à convolution profonde. C’est Open Source, vous pouvez donc le porter sur du matériel AMD. Le truc génial: il pourrait fonctionner sur un MacBook Pro avec des graphiques Intel Iris.

Découvrez la plateforme ROCm pilotée par AMD. Il s’agit de la première plate-forme open source HPC / Hyperscale pour l’informatique GPU, indépendante du langage de programmation.

Plus précisément: