web-dev-qa-db-fra.com

OpenCL / AMD: apprentissage en profondeur

Bien que "googl'ing" et faisant quelques recherches, je n'ai pas pu trouver aucun sérieux/populaire framework/sdk pour GPGPU-Computing scientifique et OpenCL sur le matériel [~ # ~] et [~ # ~] . Y a-t-il de la littérature et/ou des logiciels que j'ai manqués?

Surtout je suis intéressé par apprentissage en profondeur.

Pour tout ce que je sais deeplearning.net recommande [~ # ~] nvidia [~ # ~] matériel et [~ # ~] cuda [~ # ~] cadres. En outre, tous les grands cadres d’apprentissage en profondeur que je connais, tels que Caffe , Theano , ( Torche , DL4J , ... sont focalisés sur [~ # ~] cuda [~ # ~] et ne prévoyez pas de prendre en charge OpenCL/AMD .

En outre, on peut trouver de nombreux articles scientifiques ainsi que la littérature correspondante pour des tâches d'apprentissage en profondeur basées sur [~ # ~] cuda [~ # ~] , mais presque rien pour les solutions basées sur OpenCL/AMD .

Existe-t-il une chance que des cadres scientifiques nouveaux ou existants apparaissent pour des solutions basées sur OpenCL/AMD en 2015/16?

Quel est le bon début pour un apprentissage en profondeur avec OpenCL/AMD ? Toute littérature? Des tutoriels? Sources diverses?

57
daniel451

Edit 1 Voir de Mikael Rousson answer - Amazon est désormais la voie à suivre car vous pouvez "louer" une puissance de calcul à partir d'eux.

Edit 2 J'ai créé une série de guides sur la configuration des instances pour l'apprentissage approfondi Amazon EC2 avec theano. C'est beaucoup plus plus pratique que de fonctionner sur une machine personnelle.

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

Je suis dans la même situation que vous puisque j'ai un MacBook Pro avec des graphiques Intel Iris. J'ai passé la meilleure partie de la semaine à examiner toutes les solutions de contournement possibles et je serais plus que bienvenu pour des solutions de rechange à celles que je propose.

La meilleure solution que j'ai actuellement est de:

  1. Installez la bibliothèque pythontensorflow et utilisez le support GPU disponible et continuez de mettre à jour vos versions de développement.
  2. Utilisez theano - et utilisez 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 élevé de compréhension (pas de tutoriels), regardez DeepCL et éventuellement pyOpenCl .

J'ai trouvé que toute solution utilisant OpenCL, par exemple pyOpenCl , n’a pas encore d’interfaces conviviales pour Deep Learning, c’est-à-dire qu’il faudra plus de temps pour le coder avec une méthode alternative que pour le coder rapidement et s’exécuter sur un processeur. Cela dit, voici les meilleures bibliothèques OpenCL alternatives pour l'apprentissage en profondeur:

En développement

28

--- Mise à jour août 2017: de nouvelles choses intéressantes se sont produites du côté d'AMD ---

il est maintenant possible d'exécuter n'importe quelle bibliothèque sur la plupart des matériels AMD Check Here

À partir du 25 octobre 2015

il semble qu'AMD et d'autres aient étendu leurs efforts au développement de plusieurs frameworks accélérés de développement OpenCL. Alors oui, le support OpenCL est maintenant disponible pour le développement personnel :)

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

Nous savons actuellement (25 octobre 2015) qu'il existe trois cadres d'apprentissage en profondeur qui sont très populaires auprès des chercheurs et qui ont vu certains produits commerciaux

  1. Theano

  2. Caffe

  3. Torche


caffe a un support OpenCL assez bon car AMD a développé une version complète de caffe qui supporte presque toutes les fonctionnalités de caffe et qui est également en cours de développement actif. il s'appelle OpenCL Caffe. et voici le référentiel

OpenCL Caffe

si vous songez à la performance, alors, selon ce site (je ne l’ai pas référencé 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 un rendement inférieur de moitié pour un sixième d’argent. Cependant, l'utilisation de n'importe quelle carte de consommateur vous posera un problème de mémoire (vram), ce qui est très important dans l'apprentissage en profondeur.


Torch 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 pas une idée de la performance. Voici le référentiel. il est activement maintenu.

cltorch


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


Il existe également d’autres frameworks opencl pour l’apprentissage approfondi. Il faudra du temps pour les trier afin de voir s’ils fonctionnent correctement ou non.

16
Yeasin Ar Rahman

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

Conseil: utilisez des instances ponctuelles pour obtenir un prix inférieur (environ 10 centimes/heure pour un g2.2xlarge).

9
Mikael Rousson

PlaidML ( https://github.com/plaidml/plaidml ) est un environnement d'apprentissage en profondeur entièrement open source qui s'exécute sur OpenCL et s'intègre à Keras pour fournir une API familière à l'utilisateur. Le statut de README du référentiel a un statut plus détaillé, actuellement, l’inférence de convnet sur Linux est bien prise en charge, mais nous ( http://vertex.ai ) travaillons à l’étendue de la complétude Nos machines à intégration continue incluent un assortiment de GPU AMD et NVIDIA, tous sous Linux pour le moment, mais nous travaillons également à l’ajout de Mac et Windows.

7
Choong Ng

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

  • multiplication de la matrice blas
  • gradients
  • opérations propres telles que: réductions, argmin/argmax, opérations par élément (binaire et unaire)
5
Hugh Perkins

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

Voir: numéro de Github .

Espérons que pas si loin d'une version de travail.

4
salle55

Découvrez le plate-forme ROCm , piloté par AMD. C’est la première plate-forme open-source de classe HPC/Hyperscale pour l’informatique GPU, indépendante du langage de programmation.

Plus précisément:

1
AmitB

Veuillez vérifier https://01.org/intel-deep-learning-framework - L'Intel® Deep Learning Framework (IDLF) fournit un cadre unifié pour les plates-formes Intel® accélérant les réseaux de neurones à convolution profonde. Il est Open Source, vous pouvez donc également le porter sur du matériel AMD. La bonne chose: il pourrait fonctionner sur un MacBook Pro avec des graphiques Intel Iris.

1
Robert Ioffe