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)
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.
pacman -S git patch unzip
)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
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