Je voudrais savoir quelles sont les options de GPU externe (eGPU) pour macOS en 2017 avec le MacBook Pro fin 2016.
J'ai fait mes recherches, mais sur Internet, je trouve beaucoup d'informations déroutantes. Certains disent que cela peut fonctionner, mais cela nécessite Windows (double démarrage). D'autres disent que cela ne peut fonctionner que pour les anciennes cartes graphiques car CUDA n'est pas pris en charge pour les nouvelles cartes graphiques (GTX 1080). Idéalement, je voudrais exécuter la 1080 GTX de NVIDIA. Mon seul but est d'utiliser Keras et TensorFlow avec lui. Cependant, je ne connais pas toutes les choses importantes pour le faire fonctionner. Ma question est donc la suivante: est-il possible d'utiliser TensorFlow avec CUDA et eGPU sur le dernier MacBook Pro 2016 (15 ")? Je souhaite utiliser la carte graphique sous macOS (avec le dernier MacBook Pro 15") comme eGPU (pas de double partition de démarrage / Windows / Linux).
Note latérale: j'ai déjà vu des utilisateurs utiliser des eGPU sur des macbook (Razor Core, AKiTiO Node), mais jamais en combinaison avec CUDA et Machine Learning (ou 1080 GTX d'ailleurs). Les gens ont suggéré de louer de l'espace serveur à la place, ou d'utiliser Windows (meilleure prise en charge de la carte graphique) ou même de construire un nouveau PC pour le même prix qui vous permet d'utiliser un eGPU sur Mac. (Je ne préfère pas cette option.)
Réponses:
J'ai enfin pu installer Nvidia Titan XP + MacBook Pro + Akitio Node + Tensorflow + Keras
J'ai écrit un résumé de la procédure, j'espère que cela aide
https://gist.github.com/jganzabal/8e59e3b0f59642dd0b5f2e4de03c7687
Voici ce que j'ai fait:
Cette configuration a fonctionné pour moi, j'espère que cela aide
Il est basé sur: https://becominghuman.ai/deep-learning-gaming-build-with-nvidia-titan-xp-and-macbook-pro-with-thunderbolt2-5ceee7167f8b
et sur: https://stackoverflow.com/questions/44744737/tensorflow-mac-os-gpu-support
Matériel
Versions du logiciel
Procédure:
Installer le pilote GPU
Lorsque votre mac a redémarré, exécutez cette commande dans le terminal:
Débranchez votre eGPU de votre Mac et redémarrez. Ceci est important si vous n'avez pas débranché votre eGPU, vous pouvez vous retrouver avec un écran noir après le redémarrage.
Lorsque votre Mac a redémarré, ouvrez Terminal et exécutez cette commande:
Installer CUDA, cuDNN, Tensorflow et Keras
En ce moment, Keras 2.08 a besoin de tensorflow 1.0.0. Tensorflow-gpu 1.0.0 a besoin de CUDA 8.0 et cuDNN v5.1 est celui qui a fonctionné pour moi. J'ai essayé d'autres combinaisons mais ne semble pas fonctionner
Définir les variables env
(Si votre bash_profile n'existe pas, créez-le. Ceci est exécuté chaque fois que vous ouvrez une fenêtre de terminal)
Copiez les fichiers cuDNN sur CUDA
Créer un environnement et installer tensorflow
Vérifiez que cela fonctionne
Exécutez le script suivant:
Installez Keras dans l'environnement et définissez tensorflow comme backend:
Sortie:
la source
J'ai pu faire fonctionner une NVIDIA GTX 1080 Ti sur le nœud Akitio sur mon iMac (fin 2013). J'utilise un adaptateur Thunderbolt 2> 3, mais sur les nouveaux Mac, vous pouvez utiliser directement le TB3 plus rapide.
Il existe différentes configurations d'eGPU décrites sur eGPU.io, et vous pouvez en trouver une qui décrit précisément votre ordinateur / boîtier / carte. Ces didacticiels sont principalement destinés à accélérer l'affichage avec un eGPU, mais pour la formation des NN, vous n'avez évidemment pas besoin de suivre toutes les étapes.
Voici à peu près ce que j'ai fait:
/usr/local/cuda
avec le reste de vos bibliothèques CUDA et comprend.pip install tensorflow-gpu
, je n'ai eu aucune erreur d'installation, mais j'ai eu un défaut de configuration lors de la demande de TensorFlow en Python. Il s'avère que certaines variables d'environnement doivent être définies (un peu différemment que le programme d'installation de CUDA suggère), qui ont été décrites dans un commentaire de problème GitHub .À partir des menus iStat, je peux vérifier que mon GPU externe est bien utilisé pendant la formation. Cette installation TensorFlow n'a pas fonctionné avec Jupyter, cependant, mais j'espère qu'il existe une solution pour cela.
Je n'ai pas beaucoup utilisé cette configuration, donc je ne suis pas sûr de l'augmentation des performances (ou des limitations de la bande passante), mais eGPU + TensorFlow / CUDA est certainement possible maintenant, car NVIDIA a commencé à publier des pilotes appropriés pour macOS.
la source
Le support eGPU sur macOS est un sujet difficile, mais je ferai de mon mieux pour répondre à votre question.
Commençons par les cartes graphiques! Pour gagner du temps, et parce que nous parlons de CUDA, nous nous en tiendrons aux cartes Nvidia. Toute carte graphique fonctionnera avec les pilotes appropriés sous Windows. Apple, cependant, ne prend officiellement en charge que quelques cartes graphiques Nvidia, principalement des cartes très anciennes. Cependant, les pilotes graphiques Nvidia fonctionnent en fait sur presque toutes les cartes GeForce et Quadro de Nvidia, à une grande exception près. Les cartes GTX 10xx NE FONCTIONNENT PAS. Sur n'importe quel système d'exploitation Mac. Période. Les pilotes de Nvidia ne prennent pas en charge cette carte. Si vous recherchez de la puissance, vous voudrez peut-être regarder la GTX 980Ti ou Titan X (de nombreuses bonnes cartes Quadro fonctionneraient également bien).
Maintenant que nous avons couvert cela, passons aux boîtiers eGPU. Je vais supposer, parce que vous avez mentionné spécifiquement les eGPU, que vous avez prévu un véritable boîtier eGPU (utilisons le nœud AKiTiO comme exemple), au lieu d'un châssis d'extension PCIe avec une alimentation externe, car ce n'est pas une bonne idée.
Nous avons donc maintenant une carte graphique (GTX 980Ti) dans un boîtier eGPU (AKiTiO Node) et nous voulons la faire fonctionner. Eh bien, c'est plus facile à dire qu'à faire. J'ai fait un peu de recherche sur l'eGPU vers la fin de 2016, et les informations que j'ai obtenues étaient relativement confuses, donc si quelqu'un a des commentaires ou des corrections, faites-le moi savoir. D'après ce que je comprends, pour utiliser la puissance de l'eGPU, vous devez brancher un moniteur externe sur l'eGPU. Je ne pense pas que vous puissiez exécuter l'eGPU sans moniteur externe sous macOS. Vous ne verrez pas non plus l'écran de démarrage d'Apple sur le moniteur connecté à l'eGPU (à moins que vous n'achetiez une carte flashée de MacVidCards), mais vous devriez alors pouvoir utiliser l'eGPU pour piloter vos graphiques.
En supposant que vous réussissiez tout cela, vous devriez avoir une centrale graphique compatible CUDA de très haute puissance.
la source
Je l'ai récemment fait avec OSX 10.13.6 pour pytorch et fastai. Voir mon essentiel ici: https://gist.github.com/dandanwei/18708e7bd5fd2b227f86bca668343093
la source
Si vous utilisez macOS 10.13.3, vérifiez ce lien . Il couvre tout, de la configuration de l'eGPU à la compilation de TensorFlow.
la source