In dem Blog-Beitrag „TensorFlow selbst gebastelt“ wurde die Kompilierung und Installation von Tensorflow 1.15 mit CUDA-Unterstützung für CUDA-10 beschrieben. Mittlerweile ist CUDA in der Version 11 angekommen und Tensorflow gibt es in der Version 2.3.0: Ein Update ist also nötig!
Das Vorgehen ist relativ ähnlich zum vorherigen Beitrag. Die erste große Hürde ist Bazel. Zum Einsatz kam eine vorkompilierte Version (3.2.0) von github:
cd ~ ; wget https://github.com/bazelbuild/bazel/releases/download/3.2.0/bazel-3.2.0-linux-x86_64
Danach wurde tensorflow von github herruntergeladen:
- git clone https://github.com/tensorflow/tensorflow.git
- cd tensorflow/
- git tag
- git checkout tags/v2.3.0 -b v2.3.0-branch
- ./configure
Nun wird die gewünschte Konfiguration abgefragt:
- /usr/bin/python3 (Default-Wert)
- /usr/lib/python3.6/site-packages (Default-Wert)
- n (OpenCL SYCL)
- n (ROCm)
- y (CUDA)
- n (TensorRT)
- 11 (CUDA-Version)
- 8 (cuDNN-Version)
- (leere Eingabe) (ncc)
/usr/,/usr/include/,/usr/local/cuda-11.0/,/usr/local/cuda-11.0/include/,/opt/cuda/include/,/opt/cuda/lib64
- 7.0 (compute cap)
- n
- /usr/bin/gcc (Default-Wert)
-D_GLIBCXX_USE_CXX11_ABI=0 -O3 -Wformat -Wformat-security -fstack-protector -fPIC -march=native -Wno-sign-compare
- n
Die Konfiguration ist fertig – jetzt das Bauen mit dem Bazel von github:
../bazel-3.2.0-linux-x86_64 build –config=opt –config=numa –config=cuda –config=mkl –config=monolithic –config=v2 //tensorflow/tools/pip_package:build_pip_package
Jetzt lange Warten ….. und dann das Paket schnüren:
bazel-bin/tensorflow/tools/pip_package/build_pip_package
tensorflow_pkg
Die fertige whl-Datei liegt nun unter tensorflow_pkg und kann nun installiert werden:
pip3 install -I tensorflow_pkg/tensorflow-2.3.0-cp36-cp36m-linux_x86_64.whl
pip3 list | grep tensorflow
Informationen für die NutzerInnen des Instituts für Informatik:
Auf gruenau9 und gruenau10 kann das pip-Paket wie folgt installiert werden:
pip3 install --force-reinstall /vol/pool-software/tensorflow/gruenau9_10/tensorflow-2.3.0-cp36-cp36m-linux_x86_64.whl