[PYTHON] Versuchen Sie Tensorflow mit einer GPU-Instanz unter AWS

EC2-Setup

Erstellen Sie eine Ubuntu-Instanz mit einer GPU-Instanz namens p2.xlarge (siehe unten). (Derzeit sind p2-Instanzen in der Region Tokio nicht verfügbar, also hier)

Legen Sie einen geeigneten Namen für die Sicherheitsgruppe und das Schlüsselpaar fest. (Hier ist es `` sg_01```, `kp_01```.) Sie können auch problemlos ein vorhandenes Schlüsselpaar verwenden.

Gehen Sie nach dem Herunterladen des Schlüsselpaars zu .ssh und ändern Sie die Berechtigungen.

$ mv ~/Download/kp_01.pem ~/.ssh/.
$ chmod 600 ~/.ssh/kp_01.pem

Überprüfen Sie nach dem Erstellen der Instanz das öffentliche DNS in der Verwaltungskonsole und melden Sie sich mit SSH an.

$ ssh -i ~/.ssh/kp_01.pem ubuntu@<Public DNS>

Das Folgende ist die Arbeit an EC2. Aktualisieren Sie zunächst das Paket.

$ sudo apt-get update
$ sudo apt-get upgrade

CUDA

CUDA 8.0 installieren

URL: https://developer.nvidia.com/cuda-downloads Installation guide: http://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html

Vorherige Bestätigung

Überprüfen Sie, ob Sie eine GPU haben, die CUDA unterstützt

$ lspci | grep -i nvidia
00:1e.0 3D controller: NVIDIA Corporation GK210GL [Tesla K80](rev a1)

Überprüfen Sie, ob das Betriebssystem mit CUDA kompatibel ist

$ uname -m && cat /etc/*release
x86_64
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.2 LTS"
NAME="Ubuntu"
VERSION="16.04.2 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.2 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
VERSION_CODENAME=xenial
UBUNTU_CODENAME=xenial

Installation von gcc (+ Entwicklungstools)

$ sudo apt-get install build-essential

Installieren Sie dieselbe Version des Kernel-Headers wie den laufenden Kernel

$ sudo apt-get install linux-headers-$(uname -r)

Installation

Wählen Sie unter https://developer.nvidia.com/cuda-downloads wie folgt "Select Platform Platform" aus, um den Download-Link und die Installationsanweisungen anzuzeigen. Holen Sie sich die Datei mit wget von der verknüpften URL und installieren Sie sie. (Installieren Sie hier `` `cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64-deb```.)

$ wget https://developer.nvidia.com/compute/cuda/8.0/Prod2/local_installers/cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64-deb
$ sudo dpkg -i cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64-deb
$ sudo apt-get update
$ sudo apt-get install cuda

Umgebungsvariablen einstellen

Stellen Sie in ~ / .bash_profile wie folgt ein.

~/.bash_profile


export CUDA_HOME="/usr/local/cuda-8.0"
export PATH="${CUDA_HOME}/bin${PATH:+:${PATH}}"
export LD_LIBRARY_PATH="${CUDA_HOME}/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}"

Bitte melden Sie sich erneut an, damit die Einstellungen wirksam werden.

$ exec $SHELL -l

Funktionsprüfung

Erstellen Sie das Beispielprogramm und überprüfen Sie den Vorgang. (Es ist egal, ob Sie es nicht ausführen.)

$ cuda-install-samples-8.0.61.sh test
$ cd test/NVIDIA_CUDA-8.0_Samples
$ sed -i "s/nvidia-367/nvidia-375/g" `grep "nvidia-367" -r ./ -l`
$ make

CuDNN installieren 5.1

URL: https://developer.nvidia.com/cudnn Zum Herunterladen müssen Sie Mitglied des NVIDIA Developer Program sein. Da eine Authentifizierung erforderlich ist, laden Sie die Datei auf Ihren lokalen PC herunter und laden Sie sie mit SCP auf EC2 hoch. (Hier wird `` `cudnn-8.0-linux-x64-v5.1.tgz``` verwendet.)

SCP von lokal

$ scp -i ~/.ssh/kp_01.pem ~/Downloads/cudnn-8.0-linux-x64-v5.1.tgz ubuntu@<Public DNS>:~/.

Installation auf EC2 (nur Dateiextraktion und Platzierung)

$ tar zxvf cudnn-8.0-linux-x64-v5.1.tgz
$ sudo cp cuda/include/* ${CUDA_HOME}/include/.
$ sudo cp cuda/lib64/* ${CUDA_HOME}/lib64/.

Installation der NVIDIA CUDA Profile Tools-Schnittstelle (libcupti-dev)

Sie können es mit apt-get installieren.

$ sudo apt-get install libcupti-dev

Dieses Mal bekam ich jedoch den Fehler "*** ist kein symbolischer Link", als ich ihn ausführte, also löste ich ihn wie folgt. (Referenz: http://stackoverflow.com/questions/43016255/libegl-so-1-is-not-a-symbolic-link)

$ sudo mv /usr/lib/nvidia-375/libEGL.so.1 /usr/lib/nvidia-375/libEGL.so.1.org
$ sudo ln -s /usr/lib/nvidia-375/libEGL.so.375.39 /usr/lib/nvidia-375/libEGL.so.1

$ sudo mv /usr/local/cuda-8.0/targets/x86_64-linux/lib/libcudnn.so.5 /usr/local/cuda-8.0/targets/x86_64-linux/lib/libcudnn.so.5.org
$ sudo ln -s /usr/local/cuda-8.0/targets/x86_64-linux/lib/libcudnn.so.5.1.10 /usr/local/cuda-8.0/targets/x86_64-linux/lib/libcudnn.so.5

$ sudo mv /usr/lib32/nvidia-375/libEGL.so.1 /usr/lib32/nvidia-375/libEGL.so.1.org
$ sudo ln -s /usr/lib32/nvidia-375/libEGL.so.375.39 /usr/lib32/nvidia-375/libEGL.so.1

GPU-Einstellungen

http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/accelerated-computing-instances.html Wenden Sie "GPU-Einstellungen optimieren (nur P2-Instanzen)" unter Bezugnahme auf an.

$ sudo nvidia-smi -pm 1
$ sudo nvidia-smi --auto-boost-default=0
$ sudo nvidia-smi -ac 2505,875

Python-Umgebung

Erstellen Sie eine Umgebung für pyenv + miniconda unter Bezugnahme auf den Artikel hier. ("Es gibt tatsächlich ein Problem mit Anakonda allein.")

pyenv https://github.com/pyenv/pyenv#installation

git klone und setze `~ / .bash_profile `.

$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv

~/.bash_profile


export PYENV_ROOT="${HOME}/.pyenv"
export PATH="${PYENV_ROOT}/bin:${PATH:+:${PATH}}"
eval "$(pyenv init -)"

miniconda Installieren Sie die neueste Miniconda (hier Miniconda 3-4.3.11) mit pyenv.

$ pyenv install -l | grep miniconda
...
(Kürzung)
...
  miniconda3-4.3.11

$ pyenv install miniconda3-4.3.11

~/.bash_profile


export CONDA_HOME="${PYENV_ROOT}/versions/miniconda3-4.3.11"
export PATH="${CONDA_HOME}/bin${PATH:+:${PATH}}"

Tensorflow Install with Anaconda Erstellen Sie eine Anaconda-Umgebung mit conda und installieren Sie Tensorflow.

$ conda create -n tensorflow python=3.5 anaconda
$ source activate tensorflow
(tensorflow)$ pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.1.0-cp35-cp35m-linux_x86_64.whl

Jupyter notebook http://jupyter-notebook.readthedocs.io/en/latest/public_server.html Nehmen Sie Einstellungen vor, um eine Verbindung zum Jupyter-Notebook herzustellen, das auf EC2 von einem lokalen PC aus gestartet wurde.

Erstellen eines Serverzertifikats und einer Schlüsseldatei

(tensorflow)$ mkdir certificate
(tensorflow)$ cd certificate
(tensorflow)$ openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mykey.key -out mycert.pem

Wertschöpfung von Passwort-Hashs

(tensorflow)$ python
>>> from notebook.auth import passwd
>>> passwd()
Enter password: 
Verify password:
'sha1:********'
>>> exit()

Erstellen Sie eine Jupiter-Konfigurationsdatei

Geben Sie die Vorlage der Einstellungsdatei aus

(tensorflow)$ jupyter notebook --generate-config

Fügen Sie die folgenden Einstellungen hinzu

:~/.jupyter/jupyter_notebook_config.py


c.NotebookApp.certfile = '/home/ubuntu/certificate/mycert.pem'
c.NotebookApp.keyfile = '/home/ubuntu/certificate/mykey.key'
c.NotebookApp.ip = '*'
c.NotebookApp.port = 9999
c.NotebookApp.open_browser = False
c.NotebookApp.password='sha1:********'

Starten Sie das Jupyter-Notizbuch

(tensorflow)$ jupyter notebook

Wenn Sie mit dem Browser Ihres lokalen PCs auf `` `https: // : 9999``` zugreifen, wird der Bildschirm zur Passworteingabe angezeigt. Geben Sie das Passwort ein, das Sie beim Erstellen des Hashwerts des Passworts eingegeben haben. Einloggen.

Recommended Posts

Versuchen Sie Tensorflow mit einer GPU-Instanz unter AWS
Führen Sie TensorFlow auf einer GPU-Instanz in AWS aus
Verwenden Sie jupyter für eine GPU-Instanz in AWS
Probieren Sie TensorFlows RNN mit einem Basismodell aus
Erstellen einer Umgebung zum Ausführen von ChainerMN auf einer AWS-GPU-Instanz
Erstellen Sie mit pulumi eine WardPress-Umgebung auf AWS
Version vom Juni 2017 zum Erstellen einer Tensorflow / Keras-Umgebung auf einer GPU-Instanz von AWS
Versuchen Sie eine Regression mit TensorFlow
# 2 Erstellen Sie eine Python-Umgebung mit einer EC2-Instanz von AWS (ubuntu18.04).
Erstellen einer TensorFlow-Umgebung, die GPUs unter Windows 10 verwendet
Führen Sie den Tensorflow der GPU-Version vor Ort in AWS EC2 aus
Versuchen Sie es mit TensorFlow
Versuchen Sie, mit einer Shell zu programmieren!
Versuchen Sie TensorFlow MNIST mit RNN
Versuchen Sie, Schedule auszuführen, um Instanzen in AWS Lambda (Python) zu starten und zu stoppen.
Wenn Sie glauben, dass Tensorflow Ihre GPU in AWS nicht erkennt
Versuchen Sie, mit einem gemischten Gaußschen Modell auf Jupyter Notebook zu gruppieren
Versuchen Sie, Tensorflow auf Docker + Anaconda auszuführen
Versuchen Sie es mit TensorFlow Part 2
Verwenden Sie Tensorflow 2.1.0 mit Anaconda unter Windows 10!
Führen Sie TensorFlow2 auf dem VPS-Server aus
Versuchen Sie Daten parallel zu Distributed TensorFlow
Erstellen Sie mit Chalice eine flaschen- / flaschenähnliche Webanwendung auf AWS Lambda
# 3 Erstellen Sie eine Python-Umgebung (Django) mit einer EC2-Instanz (ubuntu18.04) von AWS part2
Regelmäßiges Serverless Scraping mit AWS Lambda + Scrapy Teil 1
Startete eine Webanwendung auf AWS mit Django und wechselte Jobs
Ich habe versucht, Objekte mit YOLO v3 (TensorFlow 2.0) auf einer Windows-CPU zu erkennen!
Vorgehensweise zum Erstellen einer Kube-Umgebung unter Amazon Linux2 (aws) ~ (mit Bonus)
Versuchen Sie es mit Bash unter Windows 10 2 (TensorFlow-Installation)
Ich war süchtig danach, Tensorflow auf einer GPU mit dem NVIDIA-Treiber 440 + CUDA 10.2 auszuführen
Setzen Sie TensorFlow mit pip3 in die P2-Instanz
Erstellen Sie eine Tensorflow-Umgebung mit Raspberry Pi [2020]
Versuchen Sie, mit matplotlib eine Normalverteilung zu zeichnen
Probieren Sie SVM mit scikit-learn auf Jupyter Notebook aus
Ein Memo mit Python2.7 und Python3 in CentOS
Kartenmietinformationen auf einer Karte mit Python
Geben Sie eine signierte URL mit AWS SQS aus
Werfen Sie eine Anfrage mit einem Zertifikat auf httpie
Ich habe versucht, TensorFlow (GPU-Version) unter Ubuntu zu installieren
Versuchen Sie die serverseitige Verschlüsselung von S3 mit boto3
Versuchen Sie HTML-Scraping mit der Python-Bibliothek
Hinweise zum Aktivieren von PostgreSQL mit Django
Bereiten Sie die Umgebung von Chainer auf der EC2-Spot-Instanz mit AWS Lambda vor
Ich habe eine TensorFlow-Umgebung mit Windows 10 erstellt
# 1 Bis zur Bereitstellung der Webanwendung von Django (Erstellen einer Instanz mit EC2 unter AWS)
Versuchen Sie, eine Karte mit Python + Cartopy 0.18.0 zu zeichnen
Erstellen Sie ein privates Repository mit AWS CodeArtifact
Vorhersage von Effekten mit LSTM mithilfe von Keras + Tensorflow Teil 2 (Berechnung mit GPU)
Schritte zum Ausführen von TensorFlow 2.1 von Jupyter auf dem Spacon ITO-Frontend (mit GPU)
Versuchen Sie, einen Cisco Spark Bot mit AWS Lambda + Amazon API Gateway (Python) zu implementieren.
Erstellen Sie eine Kolben-App mit Tensorflow und Dlib für Centos7
Ich habe versucht, Objekte mit YOLO v3 (TensorFlow 2.1) auf der GPU von Windows zu erkennen!
Erstellen Sie eine TensorFlow-Entwicklungsumgebung auf Amazon EC2 mit Befehlskopie
Eine süchtig machende Geschichte bei der Verwendung von Tensorflow unter Android
Führen Sie regelmäßig Python-Programme auf AWS Lambda aus
Stellen Sie sich eine Cloud-native WebSocket-Anwendung vor, die unter AWS ausgeführt wird
Erstellen Sie eine Python-Umgebung mit ansible auf centos6
Versuchen Sie, QR-Code mit Raspberry Pi zu verwenden
Versuchen Sie, mit Python eine Lebenskurve zu zeichnen
Versuchen Sie, eine Nachricht mit dem SMS-Dienst von Twilio zu senden
Erstellen Sie ein billiges Zusammenfassungssystem mit AWS-Komponenten