schlagmaWiki

Sammlung verschiedenster Dinge

Benutzer-Werkzeuge

Webseiten-Werkzeuge


oeffentlich:dl4cv-einrichtung

Dies ist eine alte Version des Dokuments!


Einrichtung von Jupyter Notebooks mit Anaconda, CUDA und Fernzugriff

Diese Anleitung soll die Einrichtung eines Fernzugriffs auf Jupyter Notebooks, die auf einem PC mit Nvidia-Grafikkarte in einem Heimnetzwerk laufen, erläutern.

Als Betriebssystem wird hier Rocky Linux 8 (binärkompatibel zu RHEL 8) genutzt. Mit leichten Anpassungen können auch andere Linux-Distributionen wie OpenSUSE oder Debian verwendet werden. Hierbei sollte auf die von der zu installierenden CUDA-Version unterstützten Distributions-Versionen geachtet werden.

Bei der Auswahl der zu installierenden CUDA- und Anaconda-Version sollte außerdem auf die Kompatibilität der mit Anaconda ausgelieferten PyTorch-Version mit der CUDA-Version geachtet werden. In dieser Anleitung werden Anaconda 2022.10 und CUDA 11.7 verwerdet.

CUDA

Vorbereitung

dnf install -y epel-release gcc kernel-devel-$(uname -r) kernel-headers-$(uname -r)

Eine ausführliche Anleitung ist auf Nvidias Dokumentations-Website zu finden.

Installation

Auf Nvidias Developer-Website kann man sich über einen Klick auf den Button rpm (local) eine Anleitung zum Herunterladen und Ausführen des Installationsskriptes anzeigen lassen. Die Befehle müssen nun einzeln im Terminal ausgeführt werden und sollten ähnlich den folgenden aussehen.

wget https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda-repo-rhel8-11-7-local-11.7.0_515.43.04-1.x86_64.rpm
sudo rpm -i cuda-repo-rhel8-11-7-local-11.7.0_515.43.04-1.x86_64.rpm
sudo dnf clean all
sudo dnf -y module install nvidia-driver:latest-dkms
sudo dnf -y install cuda

Anaconda

Installation

Auf der Anaconda-Website zunächst über den Link „64-Bit (x86) Installer“ das Installationsskript herunterladen.

Im Download-Verzeichnis anschließend folgende Befehle ausführen:

chmod +x Anaconda3-2022.10-Linux-x86_64.sh
./Anaconda3-2022.10-Linux-x86_64.sh

PyTorch

Nach dem Ausführen des Anaconda-Installationsskriptes muss noch PyTorch mit CUDA-Unterstützung installiert werden. Der passende Befehl kann auf der PyTorch-Website je nach Installationsart und CUDA-Version zusammengeklickt werden (in diesem Fall Stable / Linux / Conda / Python / CUDA 11.7).

conda install pytorch torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia
conda install tensorboard

Fernzugriff

Installation benötigter Pakete

Zwischen den S

dnf install nginx certbot python3-certbot-nginx
systemctl start nginx
systemctl enable nginx

DynDNS einrichten

Systemd-Service für Notebooks anlegen

Um nicht nach jedem Start des Systems Jupyter Notebook händisch starten zu müssen, wird ein Systemd-Service eingerichtet.

/etc/systemd/system/jupyter-notebook.service

[Unit]
Description=JupyterNotebook
After=syslog.target
After=network.target

[Service]
Type=simple
User=[username]
Group=[groupname]
WorkingDirectory=[directory]
ExecStart=[executable]
Restart=always

[Install]
WantedBy=multi-user.target
systemctl start jupyter-notebook
systemctl enable jupyter-notebook

Firewall

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https

Proxy-Konfiguration

/etc/nginx/conf.d/jupyter.conf

server {
    server_name [domain];
 
    listen 80;
    listen [::]:80;
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
 
    if ($ssl_protocol = "") {
        return 301 https://$server_name$request_uri;
    }
 
    root /usr/share/nginx/html;
 
    #add_header Content-Security-Policy "default-src 'none'; img-src 'self' data$
    add_header Strict-Transport-Security "max-age=31536000; preload;";
    add_header X-Content-Type-Options nosniff;
    add_header X-XSS-Protection "1; mode=block";
    add_header Referrer-Policy "no-referrer";
 
    ssl_certificate     /etc/letsencrypt/live/[domain]/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/[domain]/privkey.pem;
 
    #include /etc/nginx/tls-config;
 
    location / {
        proxy_pass http://localhost:8888;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
    }
 
    access_log  /var/log/nginx/access-jupyter.log;
    error_log  /var/log/nginx/error-jupyter.log;
}

TODO:

  • DynDNS-Einrichtung
  • tls-config ersetzen
  • CSP
  • Domains verallgemeinern
oeffentlich/dl4cv-einrichtung.1673961608.txt.gz · Zuletzt geändert: (Externe Bearbeitung)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki