9 dicembre, ore 13:20.
Dobbiamo velocizzare l’esecuzione della libreria tensorflow. Per farlo, installeremo e configureremo il necessario per sfruttare i CUDA core della nostra GPU, la 1070.

Iniziamo scaricando dal sito ufficiale il CUDA Toolkit, disponibile solo per sistemi x64. Ho scelto la versione exe(internet), sperando che l’applicativo si colleghi ai migliori server disponibili. Dovremo scaricare la bellezza di 2,1GB. Non male.
Fallita l’installazione… Perché? Boh.

Riproviamo.
Ho dovuto eseguire un’installazione manuale, deselezionando Visual Studio c++. Lo terremo in considerazione. Ora Cuda è installato.
Sul sito di Tensorflow si legge che occorre installare anche cudnn, scarichiamo ed installiamo la versione compatibile con cuda v10.0.
Non era un file di installazione ma un pacchetto compresso zip. Estratto e inserito in una cartella chiamata Tools al percorso C:\ . Come letto sull pagina ufficiale di tensorflow.
Ora dobbiamo aggiungere le variabili PATH
SET PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin;
SET PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\extras\CUPTI\libx64;
SET PATH=C:\tools\cuda\bin;
Il primo comando non è stato preso, perché la cartella di riferimento conteneva spazi vuoti. Ho modificato il nome della cartella, sperando non ci siano gravi problemi. A questo punto ho dato nuovamente il comando non accorgendomi che mancava la stringa “%PATH% dopo il “;”. Speriamo di non aver combinato cazzate. A quanto pare il comand “%PATH” non serve...
Questo passaggio potrebbe contenere degli errori di valutazione, pertanto non è da considerarsi attendibile.
Ora effetuo un’installazione pulita di tensorflow-gpu

Provo ad importare la libreria su python e compare un errore. E’ noto, leggo i commenti. Conviene effettuare il downgrade di tensorflow da 1.12 a 1.10 vediamo se risolve. Seconda opzione, downgrade di cuda da 10.0 a 9.0.
Curioso, la versione 1.10 di tensorflow gpu pesa 115.80MB, quella 1.12 mi sembra pesasse 90MB.
Installata la versione 1.10, che richiede ovviamente cuda 9.0. Scarichiamo altri 1.3GB e installiamo tutto. A questo punto faccio che sistemare anche cudnn assicurandomi che sia la 7.4.1.5.
Scaricato ed estratto cudnn v7.4.1.5 (compatibile con cuda 9.0). Ora installiamo cuda 9.0 e modifichiamo le variabili PATH, aggiornandole alle versioni appena scaricate
Riavvio il sistema, poi installazione pulita di tensorflow–gpu.
Zio impanato, ho dimenticato di dover installare tensorflow v1.10…

Allora ho smanettato nelle variabili d’ambiente e mi sono accorto che quel giochetto degli spazi nella cartella mi è costato caro. Ora ho sistemato il tutto ma ho problemi con cudnn64_7.dll. Controllo che sia nella variabile d’ambiente e in caso affermativo installo tensorflow v1.12 perché mi ero sbagliato… zio impanato.
Sono passate un paio di ore ormai. L’installazione è terminata, tensorflow GPU è configurato. Ho dovuto spostare manualmente i file cudnn nella cartella di installazione di CUDA. Ho trovato una guida sul sito ufficiale di nVidia, meno male. In pratica cudnn non va “installato“, semplicemente occorre spostare i file nelle giuste cartelle di CUDA. Il problema semmai era capire in quali cartelle andassero messi i file.
WOW
Ho dovuto limitare la potenza della GPU, invece di usare il 100% mi sono limitato al 50, perché a quanto pare ci sono dei limiti nella memoria grafica utilizzabile. Comunque sono passato da 0.8-1.5 FPS a 20FPS, nell’analisi di un video prova. Ora possiamo eseguire uno scan di interi video!
Mentre attendi la prossima guida, che arriverà davvero a breve, leggi il YOLO Object Detection | Log da 0 a 0,001
Oppure Cosa sono i Log da 0 a 0,001 se ti interessa sapere cosa sono (e so che è così vero?)
Un caldo abbraccio, Andrea.