[PYTHON] So erzwingen Sie, dass TensorFlow 2.3.0 für CUDA11 + cuDNN8 erstellt wird

Um GPU mit TensorFlow verwenden zu können, müssen kompatible Versionen von CUDA und cuDNN verwendet werden. Ab dem 9. August 2020 unterstützt der neueste TensorFlow 2.3.0 auch CUDA 11 und cuDNN 8. Ist nicht ... Daher schlägt das Erstellen aus dem Quellcode aufgrund von Kompatibilitätsproblemen fehl.

… Aber für diejenigen, die „CUDA 11 + cuDNN 8“ verwenden und dennoch eine GPU mit TensorFlow verwenden möchten, erzwingen Sie, dass TensorFlow 2.3.0 für CUDA 11 + cuDNN 8 erstellt wird Ich werde die Methode verlassen. Bitte beachten Sie, dass es keine Garantie dafür gibt, dass alles ordnungsgemäß funktioniert, da es sich um eine Kombination von Versionen handelt, die normalerweise nicht unterstützt werden. Es funktioniert gut, soweit ich versucht habe, ein einfaches CNN-Modell zu lernen und daraus zu schließen, aber es ist eine gute Idee, es experimentell zu halten. (Vorübergehende Maßnahmen bis zur offiziellen Unterstützung von CUDA11 + cuDNN8)

Umweltinformationen

Dies ist die Umgebung, in der gebaut wird. Es befindet sich in einem Zustand, in dem der Pfad im Voraus übergeben wird, z. B. in den Ordnern CUDA und cuDNN.

Ordnerstruktur für Build usw.

Dieses Mal wird der Quellcode von TensorFlow heruntergeladen und im Ordner "S: \ build \ build_tf230" erstellt. Eine virtuelle Python-Umgebung wird auch für den TensorFlow-Build vorbereitet.

S:/build/build_tf230  #Arbeitsordner Root
 + tensorflow  #Quellcode von git erhalten
 + venv        #Virtuelle Python-Umgebung
 + wheelhouse  #Ordner zum Speichern der erstellten whl-Datei

Erstellungsprozedur

Starten Sie die Eingabeaufforderung "x64 Native Tools" für VS 2019 und führen Sie die folgenden Schritte aus, um sie zu erstellen.

#Erstellen und aktivieren Sie eine virtuelle Umgebung
python -m venv s:\build\build_tf230\venv
cd /d s:\build\build_tf230
.\venv\Scripts\activate.bat

#Installation der erforderlichen Pakete
#Hinweis: Neueste 1.19.Beachten Sie, dass das Erstellen fehlschlägt, wenn Sie NumPy der x-Serie verwenden
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

#Quellcode abrufen (v2.3.0-Tag-Spezifikation)
git clone -b v2.3.0 https://github.com/tensorflow/tensorflow.git
cd tensorflow

#Abhängig von der Umgebung können die Befehlsparameter zu lang werden und ein Fehler auftreten. Löschen Sie daher unnötige Umgebungsvariablen.
set _OLD_VIRTUAL_PATH=

#Konfigurationseinstellungen erstellen
# CUDA support: Y
# CUDA compute capabilities: 7.5 (Änderung je nach Nutzungsumgebung)
# Optimization: /arch:AVX2 (je nach Nutzungsumgebung geändert)
#Ansonsten Standardeinstellungen (Enter)
python ./configure.py

#Bei Verwendung von CUDA 11 die folgende Konfiguration.In der 78. Zeile von h tritt ein Fehler auf.
# C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\include\thrust\system\cuda\config.h
#Der Teil der Kompatibilitätsprüfung der CUB-Version, aber diese Prüfung ist "THRUST"._IGNORE_CUB_VERSION_Sie können es überspringen, indem Sie "CHECK" definieren.
#THRUST mit Bazel-Parametern_IGNORE_CUB_VERSION_Erstellen Sie TensorFlow mit aktiviertem CHECK.
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

#Paket erstellen (Paket im Steuerhausordner erstellen)
#Ich mache mir Sorgen, dass der Bildschirm einige Minuten lang nicht aktualisiert wird, aber er wird ordnungsgemäß verarbeitet. Warten wir also eine Weile.
bazel-bin\tensorflow\tools\pip_package\build_pip_package ..\wheelhouse

Das ist es. Der Punkt ist, --copt = -DTHRUST_IGNORE_CUB_VERSION_CHECK zum Parameter bazel build hinzuzufügen, um die CUB-Kompatibilitätsprüfung für CUDA 11 zu überspringen.

Recommended Posts

So erzwingen Sie, dass TensorFlow 2.3.0 für CUDA11 + cuDNN8 erstellt wird
So erstellen Sie eine Entwicklungsumgebung für TensorFlow (1.0.0) (Mac)
So aktualisieren Sie auf Chainer 2.0 (Windows + CUDA 8.0 + CUDNN)
Erstellungsprozedur für TensorFlow 2.2.0-rc0 (CUDA10.2 + cuDNN7.6.5) --Windows10
[TF] So erstellen Sie Tensorflow in einer Proxy-Umgebung
Schritte zum Erstellen von PyTorch 1.5 für CUDA 10.2 unter Windows
TensorFlow-Lernmethode für Profis der freien Künste und Python-Anfänger
Installieren Sie CUDA10.1 + cuDNN7.6.5 + tensorflow-2.3.0 unter Ubuntu 18.04
[Für Nicht-Programmierer] Wie man Kaggle läuft
So installieren Sie TensorFlow unter CentOS 7
So konvertieren Sie das Tensorflow-Modell in Lite
So erstellen Sie den MongoDB C-Sprachtreiber
So führen Sie TensorFlow 1.0-Code in 2.0 aus
Wie baue ich meinen eigenen Linux-Server?
So erstellen Sie eine Sphinx-Übersetzungsumgebung
So installieren Sie DLIB mit aktiviertem 2020 / CUDA
Wie man Hello, World mit #Nix baut
[Python] Organisieren der Verwendung für Anweisungen
So installieren Sie das Windows-Subsystem für Linux
Verwendung von Tensorflow unter Docker-Umgebung
Verwendung von "deque" für Python-Daten
Verwendung der Fingerabdruckauthentifizierung für KDE
So erstellen Sie eine Umgebung für die Verwendung mehrerer Python-Versionen auf einem Mac
[Tensorflowjs_converter] So konvertieren Sie das Tensorflow-Modell in das Format Tensorflow.js
Für Anfänger, um eine Anaconda-Umgebung aufzubauen. (Memo)
So verwenden Sie MkDocs zum ersten Mal
So erstellen Sie ein Spigot-Plug-In (für Java-Anfänger)
[Neueste] So erstellen Sie eine Java-Umgebung unter Ubuntu
Verwendung von Template Engine für Network Engineer
So führen Sie CNN in 1 Systemnotation mit Tensorflow 2 aus
Verwendung von Datenanalysetools für Anfänger
So schreiben Sie einen ShellScript Bash für Anweisung
[ESXi (vCenter)] Hinzufügen einer Netzwerkkarte für CentOS 7.3
[PyTorch] Beispiel ⑧ ~ So erstellen Sie ein komplexes Modell ~
Erfahren Sie, wie Sie Bilder aus dem TensorFlow-Code aufblasen
[Für Anfänger] Wie man Programmierung studiert Private Memo
So finden Sie die Korrelation für kategoriale Variablen
Festlegen der CPU-Affinität für Prozessthreads
So suchen Sie nach fehlenden Werten (Kaggle: House Prices)
So erstellen Sie zwei CentOS7-Umgebungen / Windows10 + VirtualBox + Vagrant
[BigQuery] Verwendung der BigQuery-API für die Python-Tabellenerstellung-
[Für Anfänger] Wie man den Befehl say mit Python benutzt!
[Für Anfänger] So studieren Sie den Python3-Datenanalysetest
So führen Sie Python im virtuellen Raum aus (für MacOS)
[Go] So erstellen Sie einen benutzerdefinierten Fehler für Sentry
Verwendung von TensorFlow auf GPUs unter Titan
So führen Sie einen Komponententest durch Teil 2 Klassendesign zum Testen
Freigeben von Ordnern für Docker und Windows mit Tensorflow
So erstellen Sie eine Django (Python) -Umgebung auf Docker
Ich dachte darüber nach, wie man kostenlos Programmieren lernt.
So erstellen Sie ein lokales Repository für Linux
So (erzwingen) Sie die Folien eines IPython-Notizbuchs als PDF
Python # So überprüfen Sie Typ und Typ für Super-Anfänger
So erstellen Sie eine Python-Umgebung unter Amazon Linux 2
Vergleichen Sie, wie die Verarbeitung für Listen nach Sprache geschrieben wird
[Einführung in Python] So schreiben Sie sich wiederholende Anweisungen mit for-Anweisungen
[How to!] Lerne und spiele Super Mario mit Tensorflow !!
[TF] Speichern und Laden von Tensorflow-Trainingsparametern