[PYTHON] Comment forcer TensorFlow 2.3.0 à construire pour CUDA11 + cuDNN8

Pour utiliser GPU avec TensorFlow, il est nécessaire d'utiliser des versions compatibles de CUDA et cuDNN, et à partir du 9 août 2020, le dernier TensorFlow 2.3.0 prend également en charge CUDA 11 et cuDNN 8. N'est pas ... Par conséquent, la création à partir du code source échouera en raison de problèmes de compatibilité.

… Mais pour ceux qui utilisent «CUDA 11 + cuDNN 8» et qui veulent toujours utiliser le GPU avec TensorFlow, «force» TensorFlow 2.3.0 à être construit pour CUDA 11 + cuDNN 8 Je vais quitter la méthode. Veuillez noter qu'il n'y a aucune garantie que tout fonctionnera correctement car il s'agit d'une combinaison de versions qui ne sont normalement pas prises en charge. Cela fonctionne bien dans la mesure où j'ai essayé d'apprendre et de déduire un modèle CNN simple, mais c'est une bonne idée de le garder expérimental. (Mesures temporaires jusqu'au soutien officiel de CUDA11 + cuDNN8)

Informations environnementales

C'est l'environnement utilisé pour la construction. Il est dans un état où le chemin est transmis à l'avance, comme les dossiers CUDA et cuDNN.

Structure des dossiers pour la construction, etc.

Cette fois, le code source de TensorFlow est téléchargé et construit sous le dossier S: \ build \ build_tf230. Un environnement virtuel Python est également préparé pour la construction de TensorFlow.

S:/build/build_tf230  #Dossier de travail Racine
 + tensorflow  #Code source obtenu par git
 + venv        #Environnement virtuel Python
 + wheelhouse  #Dossier pour stocker le fichier whl créé

Procédure de construction

Démarrez l'invite de commande des outils natifs x64 pour VS 2019 et suivez les étapes ci-dessous pour créer.

#Créer et activer un environnement virtuel
python -m venv s:\build\build_tf230\venv
cd /d s:\build\build_tf230
.\venv\Scripts\activate.bat

#Installation des packages requis
#Remarque: dernier 1.19.Notez que la construction échouera si vous utilisez NumPy de la série x
python -m pip install --upgrade pip
pip install numpy==1.18.5
pip install six wheel
pip install keras_applications==1.0.8 --no-deps
pip install keras_preprocessing==1.1.2 --no-deps

#Obtenir le code source (v2.3.0 spécification de balise)
git clone -b v2.3.0 https://github.com/tensorflow/tensorflow.git
cd tensorflow

#Selon l'environnement, les paramètres de commande peuvent devenir trop longs et une erreur peut se produire, supprimez donc les variables d'environnement inutiles.
set _OLD_VIRTUAL_PATH=

#Construire les paramètres de configuration
# CUDA support: Y
# CUDA compute capabilities: 7.5 (Changer selon l'environnement d'utilisation)
# Optimization: /arch:AVX2 (modifié en fonction de l'environnement d'utilisation)
#Sinon, paramètres par défaut (Entrée)
python ./configure.py

#Lors de l'utilisation de CUDA 11, la configuration suivante.Une erreur se produit à la 78e ligne de h.
# C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\include\thrust\system\cuda\config.h
#La vérification de compatibilité fait partie de la version CUB, mais cette vérification est "THRUST"_IGNORE_CUB_VERSION_Vous pouvez l'ignorer en définissant "CHECK".
#POUSSÉE avec paramètres bazel_IGNORE_CUB_VERSION_Générez TensorFlow avec CHECK activé.
bazel build --config=opt --config=avx2_win --config=short_logs --config=cuda --define=no_tensorflow_py_deps=true --copt=-DTHRUST_IGNORE_CUB_VERSION_CHECK --copt=-nvcc_options=disable-warnings //tensorflow/tools/pip_package:build_pip_package

#Créer un package (créer un package dans le dossier de la timonerie)
#J'ai peur que l'écran ne s'actualise pas pendant quelques minutes, mais il est traité correctement alors attendons un moment.
bazel-bin\tensorflow\tools\pip_package\build_pip_package ..\wheelhouse

C'est tout. Le but est d'ajouter --copt = -DTHRUST_IGNORE_CUB_VERSION_CHECK au paramètre de construction bazel pour ignorer la vérification de compatibilité CUB pour CUDA 11.

Recommended Posts

Comment forcer TensorFlow 2.3.0 à construire pour CUDA11 + cuDNN8
Comment créer un environnement de développement pour TensorFlow (1.0.0) (Mac)
Comment mettre à jour vers Chainer 2.0 (Windows + CUDA 8.0 + CUDNN)
Procédure de génération de TensorFlow 2.2.0-rc0 (CUDA10.2 + cuDNN7.6.5) --Windows10
[TF] Comment créer Tensorflow dans un environnement Proxy
Étapes pour créer PyTorch 1.5 pour CUDA 10.2 sous Windows
Méthode d'apprentissage TensorFlow pour les professionnels des arts libéraux et les débutants en Python
Installez CUDA10.1 + cuDNN7.6.5 + tensorflow-2.3.0 sur Ubuntu 18.04
[Pour les non-programmeurs] Comment marcher Kaggle
Comment installer TensorFlow sur CentOS 7
Comment convertir le modèle Tensorflow en Lite
Comment créer un pilote de langage MongoDB C
Comment exécuter du code TensorFlow 1.0 en 2.0
Comment créer mon propre serveur Linux
Comment créer un environnement de traduction sphinx
Comment installer DLIB avec 2020 / CUDA activé
Comment créer Hello, World avec #Nix
[Python] Organisation de l'utilisation des instructions
Comment installer le sous-système Windows pour Linux
Comment utiliser Tensorflow dans un environnement Docker
Comment utiliser "deque" pour les données Python
Comment utiliser l'authentification par empreinte digitale pour KDE
Comment créer un environnement pour utiliser plusieurs versions de Python sur un Mac
[Tensorflowjs_converter] Comment convertir le modèle Tensorflow au format Tensorflow.js
Pour les débutants à créer un environnement Anaconda. (Note)
Comment utiliser MkDocs pour la première fois
Comment créer un plug-in Spigot (pour les débutants Java)
[Latest] Comment créer un environnement Java sur Ubuntu
Comment utiliser Template Engine pour Network Engineer
Comment exécuter CNN en notation système 1 avec Tensorflow 2
Comment utiliser les outils d'analyse de données pour les débutants
Comment écrire une instruction ShellScript Bash for
[ESXi (vCenter)] Comment ajouter une carte réseau pour CentOS 7.3
[PyTorch] Exemple ⑧ ~ Comment créer un modèle complexe ~
Apprenez à gonfler des images à partir du code TensorFlow
[Pour les débutants] Comment étudier la programmation Mémo privé
Comment trouver la corrélation pour les variables catégorielles
Comment définir l'affinité du processeur pour les threads de processus
Comment vérifier les valeurs manquantes (Kaggle: House Prices)
Comment créer deux environnements CentOS7 / Windows10 + VirtualBox + Vagrant
[BigQuery] Comment utiliser l'API de BigQuery pour Python -Création de table-
[Pour les débutants] Comment utiliser la commande say avec python!
[Pour les débutants] Comment étudier le test d'analyse de données Python3
Comment exécuter python dans l'espace virtuel (pour MacOS)
[Go] Comment créer une erreur personnalisée pour Sentry
Pour utiliser TensorFlow sur des GPU inférieurs à Titan
Comment faire un test unitaire Part.2 Conception de classe pour les tests
Comment partager des dossiers avec Docker et Windows avec tensorflow
Comment créer un environnement Django (python) sur Docker
J'ai réfléchi à la façon d'apprendre la programmation gratuitement.
Comment créer un référentiel local pour le système d'exploitation Linux
Comment (forcer) PDF les diapositives d'un notebook IPython
Python # Comment vérifier le type et le type pour les super débutants
Comment créer un environnement Python sur Amazon Linux 2
Comparez comment écrire le traitement des listes par langue
[Introduction à Python] Comment écrire des instructions répétitives à l'aide d'instructions for
[Comment!] Apprenez et jouez à Super Mario avec Tensorflow !!
[TF] Comment enregistrer et charger les paramètres d'entraînement Tensorflow