Finalmente ho potuto installare Nvidia Titan XP + MacBook Pro + Akitio Node + Tensorflow + Keras
Ho scritto una sintesi con la procedura, spero che sia d'aiuto
https://gist.github.com/jganzabal/8e59e3b0f59642dd0b5f2e4de03c7687
Ecco cosa ho fatto:
Questa configurazione ha funzionato per me, spero che sia d'aiuto
Si basa su:
https://becominghuman.ai/deep-learning-gaming-build-with-nvidia-titan-xp-and-macbook-pro-with-thunderbolt2-5ceee7167f8b
e su:
https://stackoverflow.com/questions/44744737/tensorflow-mac-os-gpu-support
Hardware
Versioni del software
- macOS Sierra Versione 10.12.6
- Versione driver GPU: 10.18.5 (378.05.05.25f01)
- Versione driver CUDA: 8.0.61
- cuDNN v5.1 (20 gennaio 2017), per CUDA 8.0: è necessario registrarsi e scaricare
- tensorflow-gpu 1.0.0
- Keras 2.0.8
Procedura:
Installa il driver GPU
- Chiudi il tuo sistema, riaccendilo premendo i tasti (⌘ e R) fino a quando non vedi this, questo ti farà entrare in modalità di recupero.
- Dalla barra dei menu, fai clic su Utilità> Terminale e scrivi 'csrutil disable; riavvio 'premere Invio per eseguire questo comando.
Al riavvio del Mac, esegui questo comando nel Terminale:
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
Scollega l'eGPU dal Mac e riavvia. Questo è importante se non hai scollegato la tua eGPU potresti ritrovarti con una schermata nera dopo il riavvio.
Al riavvio del Mac, apri Terminal ed esegui questo comando:
sudo ~/Desktop/automate-eGPU/./automate-eGPU.sh -a
- Collega la tua eGPU al tuo mac tramite TH2.
- Riavvia il tuo Mac.
Installa CUDA, cuDNN, Tensorflow e Keras
In questo momento, Keras 2.08 necessita di tensorflow 1.0.0. Tensorflow-gpu 1.0.0 necessita di CUDA 8.0 e cuDNN v5.1 è quello che ha funzionato per me. Ho provato altre combinazioni ma non sembra funzionare
- Scarica e installa CUDA 8.0 CUDA Toolkit 8.0 GA2 (febbraio 2017)
- Installalo e segui le istruzioni
Imposta le variabili 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
(Se il tuo bash_profile non esiste, crealo. Questo viene eseguito ogni volta che apri una finestra del terminale)
- Download e installazione di cuDNN (cudnn-8.0-osx-x64-v5.1) È necessario registrarsi prima di scaricarlo
Copia i file cuDNN in CUDA
cd ~/Downloads/cuda
sudo cp include/* /usr/local/cuda/include/
sudo cp lib/* /usr/local/cuda/lib/
Crea l'ambiente e installa tensorflow
conda create -n egpu python=3
source activate egpu
pip install tensorflow-gpu==1.0.0
Verifica che funzioni
Esegui il seguente script:
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))
Installa Keras nell'ambiente e imposta tensorflow come 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"
Produzione:
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