Quelles versions de TensorFlow et CUDA sont compatibles ensemble ?

TensorFlow est une plateforme utilisée pour travailler sur l'apprentissage automatique des machines. Cette branche de développement nécessite des ressources très importantes pour fonctionner. Certains outils ont été développés pour manipuler les processeurs (CPU) et les cartes graphiques (GPU) afin qu'ils puissent donner plus de puissance pour travailler sur un programme donné. C'est le cas de CUDA, une technologie permettant d'écrire des instructions dans le langage C pour manipuler le GPU. Ces 2 plateformes ont des versions qui ont une compatibilité particulière. Toutes les versions ne sont pas compatibles ensemble.

En complément de CUDA, Nvidia fournit une technologie que l'on peut utiliser avec TensorFlow, cuDNN. Il s'agit d'une librairie pour utiliser un réseau de neurones profond, une fonctionnalité de recherche avancée utile pour l'apprentissage automatique des machines. Pour choisir les bonnes versions de vos plateformes, il est d'abord utile de connaître la version installée sur votre machine. Pour la plateforme CUDA, il faut lire un fichier situé dans votre installation.

 cat /usr/local/cuda/version.txt

Pour la plateforme cuDNN, on récupère une variable stockée dans le fichier d'entête de la librairie.

grep CUDNN_MAJOR -A 2 /usr/local/cuda/include/cudnn.h

Avec la plateforme TensorFlow, il suffit d'utiliser le gestionnaire de paquets pip pour connaître la version du GPU lié à votre installation.

pip freeze | grep tensorflow-gpu

Une page existe sur le site de TensorFlow pour lister les compatibilités entre les versions des plateformes : https://www.tensorflow.org/install/source#tested_build_configurations. Vous y trouverez toutes les informations dont vous avez besoin. Voici une combinaison de versions qui fonctionne pour la compatibilité entre les plateformes :

tensorflow-gpu==1.12.0

cuda==9.0

cuDNN==7.1.4