PixInsight beschleunigen mit WSL und CUDA

Created with Sketch.

PixInsight beschleunigen mit WSL und CUDA

Was ist WSL, CUDA und PixInsight?

Die Software PixInsight ist der quasi Standard für die Bearbeitung von Astrofotografien. Die Software ist für Windows, Mac OS, Linux und FreeBSD verfügbar. Über einen integrierten Benchmark kann die Geschwindigkeit von typischen Bearbeitungsschritten gemessen werden – hierbei ist auffällig, dass mit der Linux Version regelmäßig eine höhere Performance als unter Windows erreicht wird.
Durch WSL kann die Linux Version von PixInsight nun auch unter Windows ausgeführt werden.

WSL2 ist die zweite Version des Windows-Subsystem für Linux, welches Microsoft mit Windows 10 integriert hat und ständig weiter ausbaut. Weitere Informationen zu WSL gibt es unter anderem in diesem Artikel.

CUDA ist eine Programmierschnittstelle des Grafikkarten-Herstellers NVIDIA, mit der Rechenoperationen auf den Grafikprozessor ausgelagert werden können. Hiervon profitieren vor allem Programme, die auf extrem hohes Multithreading setzen, um Berechnungen zu beschleunigen, wie z.B. die Machine Learning Plattform Tensorflow, welche unter anderem von Starnet++ verwendet wird.

Warum sollte man sich damit beschäftigen?

Technologien wie Starnet++ oder StarXTerminator ermöglichen es, die Sterne aus Astrofotografien zu entfernen, bzw. den Hintergrund und die Sterne separat zu bearbeiten. Hierdurch können z.B. Details im Hintergrund besser herausgearbeitet und geschärft werden, ohne dass die Darstellung der Sterne beeinträchtigt wird.

sternwarte himmel 4 SharpenAI Standard
Sternhimmel
sternwarte himmel 4 SharpenAI Standard starless
Himmel ohne Sterne (nach der Anwendung von Starnet++)
image
Die Sternentfernung mit Starnet++ V2 wird durch NVIDIA CUDA extrem beschleunigt

WSL2 aktivieren und Linux Installation

HINWEIS: Die folgenden Schritte wurden unter Windows 11 Professional getestet – es ist möglich, dass die Schritte unter anderen Windows Versionen nicht, oder in abgewandelter Form funktionieren.

Um WSL unter Windows 11 zu aktivieren, kann man dem Tutorial auf der Microsoft Website folgen.
Im Wesentlichen muss in zunächst die Windows PowerShell im Administratormodus gestartet und dann die folgenden Befehle ausgeführt werden:

wsl --install
wsl --set-default-version 2

Anschließend kann die Linux Distribution einfach aus dem Microsoft Store installiert werden – wir verwenden in diesem Fall die Version Ubuntu 22.04. Nach der Installation muss ein Standardbenutzer und ein Passwort für Ubuntu festgelegt werden – der Benutzer und das Passwort muss nicht identisch mit dem Windows Benutzer sein.

PixInsight mit StarNet++ v2 installieren

Die nachfolgenden Befehle müssen auf der Ubuntu Linux Shell ausgeführt werden.

Bibliotheken für PixInsight installieren

sudo apt-get install unzip libnss3-dev libgdk-pixbuf2.0-dev libgtk-3-dev libxss-dev libasound2 libqt5core5a libqt5svg5 libqt5webenginecore5 libqt5webengine5 libqt5webenginewidgets5 libqt5x11extras5

PixInsight Installieren

Zunächst bereiten wir ein Installationsverzeichnis für PixInsight vor.

cd
mkdir pi-install
cd pi-install

Jetzt das tgz Installationsarchiv in das pi-install Verzeichnis kopieren (hierfür kann der neue Knoten Linux im Verzeichnisbaum des Windows Explorer verwendet werden. Das Verzeichnis liegt unter /home/<benutzer>/pi-install.

Jetzt wird das Archiv entpackt und die Installation gestartet.

tar -xf PI*.tgz
./install

Die Installation von PixInsight erfolgt im Verzeichnis /opt/PixInsight/

WICHTIG: PixInsight sollte erst nach der Installation von StarNet++ das erste Mal gestartet werden – dann wird das StarNet++ Plugin direkt erkannt.

Installation von StarNet++ v2

HINWEIS: Der Link in den folgenden Befehlen ist ggf. durch die aktuelle StarNet++ PI Plugin Version für Linux zu ersetzen.

cd
wget https://starnetastro.com/wp-content/uploads/2022/03/StarNetv2PI_linux.zip
unzip StarNetv2PI_linux.zip
cd StarNetv2PI_linux
sudo chown root:root StarNet2*
sudo chmod 755 StarNet2*
sudo cp StarNet2* /opt/PixInsight/bin/

Jetzt kann PixInsight für Linux das erste Mal gestartet werden. Beim ersten Start muss entweder der Lizenzschlüssel eingegeben werden, oder alternativ eine existierende Lizenzdatei in das nun neu erstellte Verzeichnis /home/<benutzer/.PixInsight/ kopiert werden.

CUDA für NVIDIA Grafikkarten und Tensorflow installieren

Voraussetzung ist für die folgenden Schritte ist eine NVIDIA Grafikkarte mit CUDA Unterstützung sowie die neusten NVIDIA Grafikkarten Treiber.

wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda-repo-wsl-ubuntu-11-7-local_11.7.0-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-11-7-local_11.7.0-1_amd64.deb
sudo cp /var/cuda-repo-wsl-ubuntu-11-7-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda

Nun benötigt man einen NVIDIA Developer Account – dieser ist kostenlos. Nachdem man eingeloggt ist, kann man die im folgenden Schritt benötigten .deb Datei herunterladen:
https://developer.nvidia.com/downloads/c118-cudnn-local-repo-ubuntu2204-8708410-1amd64deb

Anschließend muss die .deb Datei über den Explorer ins Linux Benutzer Verzeichnis kopiert werden.

cd
sudo dpkg -i cudnn-local-repo-ubuntu2204-8.7.0.84_1.0-1_amd64.deb
sudo cp /var/cudnn-local-repo-ubuntu2204-8.7.0.84/cudnn-local-BF23AD8A-keyring.gpg /usr/share/keyrings/
sudo cp /var/cudnn-local-repo-ubuntu2204-8.7.0.84/cudnn-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get install -y libcudnn8

Nun installieren wir Tensorflow analog zu folgender Beschreibung: https://www.tensorflow.org/install/lang_c

FILENAME=libtensorflow-gpu-linux-x86_64-2.11.0.tar.gz
wget -q --no-check-certificate https://storage.googleapis.com/tensorflow/libtensorflow/${FILENAME}
sudo tar -C /usr/local -xzf ${FILENAME}
sudo ldconfig /usr/local/lib

Damit PixInsight die GPU beschleunigten Tensorflow Bibliotheken verwendet, müssen nun noch die mitgelieferten Tensorflow Bibliotheken verschoben werden.

sudo mkdir /opt/PixInsight/bin/lib/bak
sudo mv /opt/PixInsight/bin/lib/libtensorflow* /opt/PixInsight/bin/lib/bak/

Nach einem Neustart von PixInsight sollte PixInsight und StarNet++ nun die GPU Beschleunigung verwenden.

Quellen

https://learn.microsoft.com/en-us/windows/wsl/wsl-config#wslconfig

https://pixinsight.com/forum/index.php?threads/pixinsight-running-well-in-wsl-cuda-next.17977/

https://pixinsight.com/forum/index.php?threads/gpu-accelerated-starnet-v2-working-with-cuda-and-libtensorflow-gpu-under-linux.18180/#post-110792

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert