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
- macOS Sierra version 10.12.6
- Version du pilote GPU: 10.18.5 (378.05.05.25f01)
- Version du pilote CUDA: 8.0.61
- cuDNN v5.1 (20 janvier 2017), pour CUDA 8.0: besoin de s'inscrire et de télécharger
- tensorflow-gpu 1.0.0
- Keras 2.0.8
Procédure:
Installer le pilote GPU
- Arrêtez votre système, rallumez-le en appuyant sur les touches (⌘ et R) jusqu'à ce que vous voyiez , cela vous permettra de passer en mode de récupération.
- Dans la barre de menus, cliquez sur Utilitaires> Terminal et écrivez «csrutil disable; reboot ', appuyez sur Entrée pour exécuter cette commande.
Lorsque votre mac a redémarré, exécutez cette commande dans le terminal:
cd ~/Desktop; git clone https://github.com/goalque/automate-eGPU.git
chmod +x ~/Desktop/automate-eGPU/automate-eGPU.sh
sudo ~/Desktop/automate-eGPU/./automate-eGPU.sh
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:
sudo ~/Desktop/automate-eGPU/./automate-eGPU.sh -a
- Branchez votre eGPU à votre Mac via TH2.
- Redémarrez votre Mac.
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
- Téléchargez et installez CUDA 8.0 CUDA Toolkit 8.0 GA2 (février 2017)
- Installez-le et suivez les instructions
Définir les variables env
vim ~/.bash_profile
export CUDA_HOME=/usr/local/cuda
export DYLD_LIBRARY_PATH="$CUDA_HOME/lib:$CUDA_HOME:$CUDA_HOME/extras/CUPTI/lib"
export LD_LIBRARY_PATH=$DYLD_LIBRARY_PATH
(Si votre bash_profile n'existe pas, créez-le. Ceci est exécuté chaque fois que vous ouvrez une fenêtre de terminal)
- Téléchargement et installation de cuDNN (cudnn-8.0-osx-x64-v5.1) Vous devez vous inscrire avant de le télécharger
Copiez les fichiers cuDNN sur CUDA
cd ~/Downloads/cuda
sudo cp include/* /usr/local/cuda/include/
sudo cp lib/* /usr/local/cuda/lib/
Créer un environnement et installer tensorflow
conda create -n egpu python=3
source activate egpu
pip install tensorflow-gpu==1.0.0
Vérifiez que cela fonctionne
Exécutez le script suivant:
import tensorflow as tf
with tf.device('/gpu:0'):
a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
c = tf.matmul(a, b)
with tf.Session() as sess:
print (sess.run(c))
Installez Keras dans l'environnement et définissez tensorflow comme backend:
pip install --upgrade --no-deps keras # Need no-deps flag to prevent from installing tensorflow dependency
KERAS_BACKEND=tensorflow python -c "from keras import backend"
Sortie:
Using TensorFlow backend.
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcublas.8.0.dylib locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcudnn.5.dylib locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcufft.8.0.dylib locally
I tensorflow/stream_executor/dso_loader.cc:126] Couldn't open CUDA library libcuda.1.dylib. LD_LIBRARY_PATH: /usr/local/cuda/lib:/usr/local/cuda:/usr/local/cuda/extras/CUPTI/lib
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcuda.dylib locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcurand.8.0.dylib locally