Abgesehen von meinen Nachforschungen habe ich mich entschlossen, CNN als Teilzeitjob zu berühren, und dachte, ich könnte die GPU nicht auf meinem Mac ausführen und sie nicht einfach drehen, also werde ich Linux ausführen, was ich nicht bewältigen konnte! Dies ist ein Artikel, den ich vorerst geschrieben habe.
Um es einfach auszudrücken, ich habe einen Benutzer von einem Linux-Server im Labor, daher ist es eine Erinnerung, als ich die GPU mit Tensor usw. ausführen konnte. Es lebe dein eigenes Memo.
Grundsätzlich werden wir fortfahren, während wir uns auf diese [Ausführen von TensorFlow-gpu mit Ubuntu 18.04] beziehen (https://qiita.com/sho8e69/items/66c1662c49ac89a024be).
Englisch, aber Eine Schritt-für-Schritt-Anleitung zur Installation der Tensorflow-GPU unter Ubuntu 18.04 LTS -04-lts-6feceb0df5c0) war ebenfalls hilfreich.
Ich habe den Benutzer mit sudo-Berechtigung, also ändern wir das Passwort
$ passwd [Nutzername]
(current) UNIX password:
Enter new UNIX password:
Retype new UNIX password:
Geben Sie nach Eingabe des aktuellen Passworts das neue Passwort zweimal ein und Sie sind fertig.
passwd: password updated successfully
Überprüfen Sie vorerst den aktuellen Status mit dem folgenden Befehl.
$ nvidia-smi
Dann,
Wed Nov 20 13:44:59 2019
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 390.129 Driver Version: 390.129 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 Quadro K620 Off | 00000000:02:00.0 On | N/A |
| 34% 39C P8 1W / 30W | 124MiB / 1994MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
| 1 GeForce GTX 108... Off | 00000000:03:00.0 Off | N/A |
| 23% 40C P8 26W / 250W | 2MiB / 11178MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 2599 G /usr/lib/xorg/Xorg 49MiB |
| 0 2929 G /usr/bin/gnome-shell 71MiB |
+-----------------------------------------------------------------------------+
Es scheint, dass es bereits installiert ist. Als nächstes werden wir CUDA cuDNN vorstellen.
Dies wird vorerst auch durch den folgenden Befehl bestätigt.
$ nvcc -V
Command 'nvcc' not found, but can be installed with:
apt install nvidia-cuda-toolkit
Please ask your administrator.
Es scheint, dass dies installiert werden muss. Es heißt "Bitte fragen Sie Ihren Administrator". Ich bin froh, dass ich die Administratorberechtigung erhalten habe.
Fahren wir mit der Installation fort.
Dies dient als Referenz Führen Sie TensorFlow-gpu auf ubuntu18.04 aus Oder Tensorflow mit GPU in Ubuntu 18.04 einfügen Die neueste CUDA 10.0 besagt dann, dass Tensorflow-gpu nicht unterstützt wird, sodass CIDA 9.0 installiert wurde.
Beide Artikel sind ungefähr ein Jahr alt, also ab dem 20. November 2019, wenn Sie sich die offizielle Website von Tensorflow ansehen.
The following NVIDIA® software must be installed on your system: NVIDIA® GPU drivers —CUDA 10.0 requires 410.x or higher. CUDA® Toolkit —TensorFlow supports CUDA 10.0 (TensorFlow >= 1.13.0) CUPTI ships with the CUDA Toolkit. cuDNN SDK (>= 7.4.1) (Optional) TensorRT 5.0 to improve latency and throughput for inference on some models.
Wurde geschrieben.
CUDA® Toolkit —TensorFlow supports CUDA 10.0 (TensorFlow >= 1.13.0)
Es scheint also, dass CUDA 10.0 in Ordnung ist, wenn Sie TensorFlow von 1.13.0 oder höher verwenden.
Es heißt jedoch "NVIDIA® GPU-Treiber - CUDA 10.0 erfordert 410.x oder höher". Was war die Version von NVIDIA? Ich werde zurückkehren, um zu bestätigen.
$ nvidia-smi
Wed Nov 20 13:44:59 2019
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 390.129 Driver Version: 390.129 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 Quadro K620 Off | 00000000:02:00.0 On | N/A |
| 34% 39C P8 1W / 30W | 124MiB / 1994MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
| 1 GeForce GTX 108... Off | 00000000:03:00.0 Off | N/A |
| 23% 40C P8 26W / 250W | 2MiB / 11178MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 2599 G /usr/lib/xorg/Xorg 49MiB |
| 0 2929 G /usr/bin/gnome-shell 71MiB |
+-----------------------------------------------------------------------------+
Es war 390.120. Es scheint entweder nvidia zu aktualisieren oder CUDA auf 9.0 zu setzen.
Ist es okay für die GPU, die ich überhaupt benutze? Ich dachte nach und bestätigte es unter hier.
Geben Sie den Namen des Produkts ein und klicken Sie auf SUCHEN.Es wurde empfohlen, die Version 440.31 des Treibers zu installieren. Anscheinend ist es überhaupt in Ordnung.
Nachdem ich nvidia aktualisiert und TensorFlow 1.13.0 und CUDA 10.0 installiert hatte oder mir etwa 30 Sekunden lang Gedanken über TensorFlow 1.12.0 oder früher und CUDA 9.0 gemacht hatte, entschied ich mich für Letzteres.
Nun, es ist ein gemeinsam genutzter Server, daher wäre es ein Problem, wenn es ein Update gäbe, und es ist sicherer, eines vor dem letzten zu sein.
Übrigens, um die Versionsbeziehung von Nvidia, CUDA, TensorFlow usw. zu untersuchen, dieser Artikel → [Nvidia-Treiber, CUDA, cuDNN, Tensorflow-gpu, Python-Versionskorrespondenz](https://qiita.com/konzo_ / items / a6f2e8818e5e8fcdb896) War sehr hilfreich! Vielen Dank.
Fahren Sie abschließend mit der Installation von CUDA 9.0 fort. Offizielle NVIDIA-Installationsseite → CUDA Toolkit 9.0-Downloads Wählen Sie bis. Ist es okay, weil es keinen 18.04 gibt? Ich dachte, aber als ich es nachgeschlagen habe, scheint es, dass 17.04 in Ordnung ist.
Da ich diesmal lokal arbeite, werde ich es herunterladen und mit scp an den Server senden.
local
$ scp -P [Port-Nummer] Downloads/cuda-repo-ubuntu1704_9.0.176-1_amd64.deb [Nutzername]@[IP Adresse]:[Zielpfad kopieren]
Normalerweise wird der Port -p angegeben, aber wenn scp, ist es -P.
$ wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/[Deb-Datei]
Aber es ist okay.
Fahren Sie danach mit der Installation gemäß der offiziellen Website fort.
** Außerdem scheint die neueste Version installiert zu werden, wenn die letzte "sudo apt-get install cuda" verwendet wird. Daher scheint es wichtig, die dem Ende entsprechende Version anzugeben.
Dieses Mal wird -toolkit-9-0
hinzugefügt. ** ** **
$ sudo dpkg -i cuda-repo-ubuntu1704_9.0.176-1_amd64.deb
$ sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1704/x86_64/7fa2af80.pub
$ sudo apt-get update
$ sudo apt-get install cuda-toolkit-9-0
Als nächstes scheint es notwendig zu sein, den PATH zu durchlaufen. Geben Sie den folgenden Befehl ein und bearbeiten Sie ".bashrc".
$ nano ~/.bashrc
Geben Sie am Ende die folgende Zeichenfolge ein und speichern Sie.
.bashrc
export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
Starten Sie neu
$ sudo reboot
Überprüfen Sie nach dem Start, ob CUDA mit dem folgenden Befehl installiert ist.
$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Sep__1_21:08:03_CDT_2017
Cuda compilation tools, release 9.0, V9.0.176
Wird angezeigt, also OK.
cuDNN ist eine mit CUDA installierte Mehrfachbibliothek und scheint für die Hochgeschwindigkeitsberechnung auf einer GPU mit CUDA verwendet zu werden.
Sie müssen auf die folgende Site zugreifen und sich als Mitglied registrieren. https://developer.nvidia.com/rdp/cudnn-download
Installieren Sie danach die folgenden 3 von Download cuDNN v7.6.4 for CUDA 9.0
.
Führen Sie die folgenden Befehle der Reihe nach im heruntergeladenen Verzeichnis aus. Ändern Sie die Version entsprechend in die heruntergeladene Version.
$ sudo dpkg -i libcudnn7_7.6.4.38-1+cuda9.0_amd64.deb
$ sudo dpkg -i libcudnn7-dev_7.6.4.38-1+cuda9.0_amd64.deb
$ sudo dpkg -i libcudnn7-doc_7.6.4.38-1+cuda9.0_amd64.deb
Damit ist die Installation von cuDNN abgeschlossen.
Ich möchte eine Umgebung erstellen, in der ich Anaconda von pyenv aus installieren und mit Anaconda eine virtuelle Umgebung erstellen kann, während pyenv jederzeit zwischen Anaconda-Versionen wechseln kann.
pyenv
$ git clone https://github.com/yyuu/pyenv.git ~/.pyenv
$ nano ~/.bashrc
Fügen Sie nach der Installation Folgendes zu .bashrc
hinzu.
.bashrc
export PYENV_ROOT=$HOME/.pyenv
export PATH=$PYENV_ROOT/bin:$PATH
eval "$(pyenv init -)"
Fahren Sie nach dem Neustart und der Bestätigung, dass der Pyenv-Pfad vorhanden ist, mit der Installation von Anaconda fort.
Anaconda
$ pyenv install --list | grep anaconda
Überprüfen Sie die Version von Anaconda, mit der installiert werden kann. Installieren Sie dieses Mal 5.2.0.
$ pyenv install anaconda3-5.2.0
Wechseln Sie die Version und prüfen Sie, ob sie wiedergegeben wird.
$ pyenv global anaconda3-5.2.0
$ pyenv versions
system
* anaconda3-5.2.0 (set by /home/okuda/.pyenv/version)
$ python --version
Python 3.6.5 :: Anaconda, Inc.
Sieht gut aus.
Erstellen Sie als Nächstes eine virtuelle Umgebung mit anaconda.
$ conda -V
conda 4.5.4
Stellen Sie sicher, dass es richtig funktioniert
$ conda create -n tensor pip python=3.6
Erstellen Sie eine virtuelle Umgebung mit dem Namen "Tensor". Installieren Sie pip und python3.6 zusammen.
Und ich möchte die virtuelle Umgebung wechseln, Bei Verwendung von Anaconda in der Pyenv-Umgebung kann "conda enable" nicht so verwendet werden, wie es ist.
$ conda activate tensor
CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
If your shell is Bash or a Bourne variant, enable conda for the current user with
$ echo ". /home/okuda/.pyenv/versions/anaconda3-5.2.0/etc/profile.d/conda.sh" >> ~/.bashrc
or, for all users, enable conda with
$ sudo ln -s /home/okuda/.pyenv/versions/anaconda3-5.2.0/etc/profile.d/conda.sh /etc/profile.d/conda.sh
The options above will permanently enable the 'conda' command, but they do NOT
put conda's base (root) environment on PATH. To do so, run
$ conda activate
in your terminal, or to put the base environment on PATH permanently, run
$ echo "conda activate" >> ~/.bashrc
Previous to conda 4.4, the recommended way to activate conda was to modify PATH in
your ~/.bashrc file. You should manually remove the line that looks like
export PATH="/home/okuda/.pyenv/versions/anaconda3-5.2.0/bin:$PATH"
^^^ The above line should NO LONGER be in your ~/.bashrc file! ^^^
Ich werde böse.
If your shell is Bash or a Bourne variant, enable conda for the current user with
$ echo ". /home/okuda/.pyenv/versions/anaconda3-5.2.0/etc/profile.d/conda.sh" >> ~/.bashrc
Weil es so geschrieben ist, wie es ist
$ echo ". /home/okuda/.pyenv/versions/anaconda3-5.2.0/etc/profile.d/conda.sh" >> ~/.bashrc
Wenn Sie bashrc erneut ausführen und lesen
$ source .bashrc
$ conda activate tensor
(tensor) :~$
Es hat sicher geschaltet!
Der Rest ist die Installation der notwendigen Bibliotheken. Installieren Sie zunächst das berühmte Framework TensorFlow.
Die Version befindet sich auf der offiziellen TensorFlow-Website. Laden Sie dieses Mal also tensorflow_gpu-1.12.0 herunter.
$ pip install tensorflow-gpu==1.12.0
Überprüfen Sie nach Abschluss des Vorgangs, ob TensorFlow auf der GPU funktioniert.
$ python
Python 3.6.9 |Anaconda, Inc.| (default, Jul 30 2019, 19:07:31)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>>import tensorflow as tf
>>> tf.test.gpu_device_name()
2019-11-20 19:02:23.713902: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
2019-11-20 19:02:24.115406: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1432] Found device 0 with properties:
name: GeForce GTX 1080 Ti major: 6 minor: 1 memoryClockRate(GHz): 1.582
pciBusID: 0000:03:00.0
totalMemory: 10.92GiB freeMemory: 10.76GiB
2019-11-20 19:02:24.278457: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1432] Found device 1 with properties:
name: Quadro K620 major: 5 minor: 0 memoryClockRate(GHz): 1.124
pciBusID: 0000:02:00.0
totalMemory: 1.95GiB freeMemory: 1.80GiB
2019-11-20 19:02:24.278929: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1496] Ignoring visible gpu device (device: 1, name: Quadro K620, pci bus id: 0000:02:00.0, compute capability: 5.0) with Cuda multiprocessor count: 3. The minimum required count is 8. You can adjust this requirement with the env var TF_MIN_GPU_MULTIPROCESSOR_COUNT.
2019-11-20 19:02:24.278972: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1511] Adding visible gpu devices: 0
2019-11-20 19:02:24.784359: I tensorflow/core/common_runtime/gpu/gpu_device.cc:982] Device interconnect StreamExecutor with strength 1 edge matrix:
2019-11-20 19:02:24.784436: I tensorflow/core/common_runtime/gpu/gpu_device.cc:988] 0 1
2019-11-20 19:02:24.784450: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1001] 0: N N
2019-11-20 19:02:24.784459: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1001] 1: N N
2019-11-20 19:02:24.784905: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1115] Created TensorFlow device (/device:GPU:0 with 10403 MB memory) -> physical GPU (device: 0, name: GeForce GTX 1080 Ti, pci bus id: 0000:03:00.0, compute capability: 6.1)
'/device:GPU:0'
Erkennst du eine andere GPU? Ich werde es etwas später untersuchen. Es ist in Ordnung, weil es zu '/ device: GPU: 0' wurde.
Von hier aus mag ich Jupyter persönlich, also werde ich es hinzufügen. Ich mag das.
$ conda install jupyterlab
Machen Sie danach das, was Sie mit [hier] gemacht haben (https://qiita.com/nyanco888/items/6da004c78c471a15c0d7), damit Sie remote darauf zugreifen können, und fertig.
Überraschenderweise ist es schwierig, eine GPU zu verwenden. Danke für deine harte Arbeit.