web-dev-qa-db-fra.com

CPU vs GPU pour le calcul (conv) de réseaux de neurones

Je suis un étudiant en IA qui travaille beaucoup avec pylearn et Theano (je pourrais aussi essayer torche et caffe) cette année pour la mise en œuvre de Neural Nets, et je suis sur le point d'acheter un ordinateur portable pour cette affaire. J'aimerais avoir votre aide en fonction de votre expérience en la matière.

Je n'ai pas un gros budget alors je ne peux pas me permettre beaucoup. J'ai deux ou trois questions simples:

Quel est le meilleur support pour les bibliothèques telles que theeano, torch, caffe:ATIouNVIDIA? Quelqu'un a-t-il essayé l'informatique GPU sur Geforce 740M 820M 840M quelque chose comme ça? et est-ce mieux alors les processeurs? ou si je ne peux pas me permettre un énorme GPU, est-il préférable d'acheter un ordinateur portable avec un bon i7 plutôt que ces cartes (bon marché)?

Merci pour votre temps,

9
Sam

Donc, après avoir lu vos réponses et certains billets de blog, ma conclusion est la suivante: N'essayez pas de faire d'un ordinateur portable votre poste de travail principal pour un apprentissage en profondeur! C'est tout simplement trop cher : Vous dépenserez des milliers de dollars pour une configuration d'ordinateur portable qui pourrait coûter des centaines de dollars pour un ordinateur de bureau. Et le moins cher n'en vaut pas la peine.

Je pense que je vais acheter un ordinateur portable 13 "et commencer à construire un ordinateur de bureau solide, puis je ferais un accès SSH à celui-ci.

Ces deux liens sont parfaits pour avoir une bonne compréhension du choix du GPU.

http://timdettmers.com/2017/04/09/which-gpu-for-deep-learning/

https://www.linkedin.com/Pulse/20141013042457-89310056-which-gpu-to-use-for-de-deear-learning

Merci à tous !

15
Sam

En ce qui concerne votre première question, je ne connais pas ces bibliothèques pour la mise en œuvre de NN. Mais si vous avez utilisé quelque chose comme octave/Matlab, les deux bibliothèques ont des bibliothèques pour NN qui utilisent CUDA pour former des NN. GPU vs CPU .... L'implémentation de NN et de l'apprentissage automatique en général est fortement basée sur des vecteurs/matrices et des opérations matricielles telles que multiplication/addition..etc. Quand il s’agit d’opérations sur la matrice, vous n’y réfléchissez pas à deux fois, vous optez toujours pour les GPU. Les opérations matricielles sont des opérations à données uniques à instruction unique qui utilisent énormément les GPU. Fondamentalement, il s’agit de la même opération (qui est généralement simple), exécutée indépendamment sur d’énormes quantités de données. Vous n'avez pas besoin d'un GPU très avancé. J'ai utilisé 320GTX sur mon ancien macbook et c'était assez bon (je suppose que vous êtes un étudiant et que vous allez mettre en œuvre une preuve de concept ou des projets universitaires et non un projet de niveau professionnel).

3
mkmostafa

Les opérations d'apprentissage automatique sont généralement réduites à des multiplications matrice-matrice. Actuellement, les multiplications matrice-matrice sont très efficaces sur les GPU par rapport aux CPU car les GPU ont beaucoup plus de threads que les CPU. En outre, NVIDIA prend en charge la boîte à outils CUDA depuis de nombreuses années. La plate-forme est maintenant mûrie. De nombreuses bibliothèques DL (par exemple, Caffe, Theano, Torch, TensorFlow) exploitent les supports CUDA pour les bibliothèques BLAS (sous-programme d'algèbre linéaire de base) et DNN (réseaux de neurones profonds). Les développeurs de bibliothèques d’apprentissage en profondeur n’auront pas à consacrer beaucoup de temps à l’optimisation des multiplications matrice-matrice.

De plus, il semble que l'optimisation du code de processeurs pour le même niveau de processeurs graphiques dans certaines opérations (opérations matrice-matrice) est assez difficile (ce que nous avons appelé Ninja optimisations). Pour de meilleures appréciations de ce que d'autres ont connu, s'il vous plaît voir les discussions à https://github.com/BVLC/caffe/pull/439 .

0
beahacker