- Mitglied seit
- 14. Jul 2024
- Beiträge
- 187
- Punkte für Reaktionen
- 42
- Punkte
- 28
Das Synology eher eine bescheide Auswahl an Hardware trifft und uns diese dann auch noch überteuert andreht, sollte ja im Allgemeinen bekannt sein. Das Hardware Transcoding auch eher stiefmütterlich behandelt wird, ist ein weiteres Thema. Wobei die Unterstützung von Hardware Transcoding Vorteile mit sich bringen würde und wahrscheinlich in der Community gern gesehen werden würde.
Auch für mich ist das Thema Hardware Transcoding interessant und so habe ich mich mal im Internet auf die Suche gemacht. Gefunden haben ich diesen Beitrag bei Reddit: reddit
Ich fand den Beitrag ganz interessant und habe mich gleich mal dran gemacht, dies auszuprobieren. Long Story short - es hat funktioniert und meine DS ist dabei keinen qualvollen Tod gestorben.
Ich erkläre euch hier, wie Ihr dies nachbauen könnt.
Was wird benötigt:
Synology Diskstation mit PCIe Erweiterungssteckplatz
Low-Profil-Grafikkarte ohne externen Stromanschluss
Adapter für PCIe 3.0x16 auf 3.0x8 Link: Amazon
Hardware Installation:
Zuerst muss die Slot Blende von der Grafikkarte entfernt werden, ansonsten passt diese nicht in das Gehäuse. Bei der T400 wird die Blende mit zwei Schrauben an der Grafikkarte gehalten. Schrauben gelöst und schon hat man die Blende in der Hand. In dem Zuge habe ich auch gleich mal den Kühlerkörper entfernt und die Wärmeleitpaste ausgetauscht. Nur noch Adapter und Grafikkarte zusammen stecken und die Karte ist bereit für den Einbau in unser NAS.
Nachdem die Karte für den Einbau vorbereitet wurde, fahren wir die Synology herunter, trennen diese von Strom und Netzwerk und öffnen das Gehäuse. Bei meiner DS1621+ wird der Deckel des Gehäuses durch 6 Schrauben gehalten, diese lösen und den Deckel nach hinten wegschieben. Nun kann man den Grafikkarten-Adapter-Verbund in den PCIe Steckplatz einsetzten.
Leider gibt es keine gute Möglichkeit die Karte in dieser Position zu befestigen. Mit einem 3D-Drucker und einer Schieblehre könnte man sich einen entsprechenden Halter drucken. Die "Bewegungsfreiheit" bei meiner Karte ist nicht so groß, das ich mir Sorgen machen, das die Rückseite der Grafikkarte den Metallkäfig der Festplatten berühren wird.
Zum Schluss nur noch die Synology wieder verschließen, mit Strom und Netzwerk verbinden und unser NAS ist bereit für die Software Installation.
Software Installation:
Nachdem die Synology hochgefahren ist, verbinden wir uns über den Browser mit der DSM Oberfläche.
Für die Installation benötigen wir die SPK für die Nvidia Runtime Libary welche wir hier finden können: https://github.com/pdbear/syno_nvidia_gpu_driver/releases
Ich habe die Version vom 20.07.2024 genommen und erhielt die Datei "NVIDIARuntimeLibrary-x86_64-535.154.05-20240720-common-sign.spk".
Über Manuelle Installation im Packet-Zentrum installiert man das Paket. Da der Entwickler aus China kommt und ungünstigerweise die Beschreibung des Paketes nicht ins Englische übersetzt hat, nutze ich die Kamera-Funktion des Google Übersetzer.
Nachdem allgemeinen Lizenz Bla Bla kommt, die erste Auswahl, die wir treffen müssen: Hierbei geht es darum, ob wir den Treiber für eine physische oder eine virtuelle Grafikkarte, die zum Beispiel vom einem Host an eine virtuelle Maschine weiter geleitet wird, installieren wollen. Ich habe die obere Option ausgewählt.
Bei der nächsten Seite, geht es um eine Zertifikatsstelle für die virtuelle Grafikkarte, da dies bei mir nicht der Fall ist, bin ich einfach über Weiter zum nächsten Schritt gegangen.
In den nächsten Schritten sollte die Installation zum Abschluss gebracht werden und keine weitere Auswahl folgen. Wenn die Installation abgeschlossen ist, sollte nun das Paket Nvidia GPU Driver installiert sein.
Nachdem die Paketinstallation abgeschlossen ist, muss der Befehl
ausgeführt werden. Dieser kann über das Terminal oder via Aufgabe über den Aufgabenplaner erfolgen.
Bei der Eingabe über das Terminal, muss sudo vorangesetzt werden, damit dieser Befehl mit root rechten ausgeführt wird.
Bei der Variante über den Aufgabenplaner muss die Aufgabe mit dem Nutzer root ausgeführt werden.
Jetzt nur noch die Synology neu starten und die Grafikkarte sollte vom System erkannt werden. Dies kann über das Info-Center in der Systemsteuerung oder dem Befehl nvidia-smi im Terminal überprüft werden. Wie man unschwer erkennen kann, kann dieser Befehl auch dafür genutzt werden, zu sehen ob Anwendungen auch wirklich die Grafikkarte benutzen. Auch im Ressourcen-Monitor ist die Grafikkarte jetzt vertreten und dessen Auslastung bzw. die Auslastung des Grafikkartenspeichers kann eingesehen werden.
Bei mir war es nicht der Fall, aber im originalen Reddit Post wurde erwähnt, sollte die Grafikkarte zu diesem Zeitpunkt noch nicht erkannt worden sein, muss der Befehl vgpuDaemon fix erneut ausgeführt werden. Diesmal erweitert mit vgpuDaemon stop und vgpuDaemon start.
Mein über das Paket Zentrum installierter Emby Server übernahm direkt die Einstellungen für das Hardware Transcoding über die Grafikkarte.
Unlimited Transcoding Patch:
Der Ersteller des Reddit Posts ließ durchscheinen, das es eine Limitierung der Anzahl von gleichzeitigen Transcoding Sessions (3 gleichzeitig) gibt. Da ich alleiniger Nutzer meines Datensklaven bin, habe dieses Problem bisher noch nicht und deswegen diesen Punkt übersprungen. Sollte dies für dich jedoch ein Thema sein, es gibt einen Patch, der die Limitierung aufhebt. Dieser kann auf Github heruntergeladen werden: Link: https://github.com/keylase/nvidia-patch
Nachdem man den Patch heruntergeladen und auf dem NAS gespeichert hat, bewegt man sich via Terminal zum Speicherort des Patches und führt dann den Patch mit dem Befehl bash ./patch.sh aus.
GPU-Nutzung im Docker:
Da ich gerade Jellyfin über Docker teste, interessierte es mich, ob ich die Grafikkarte auch den Docker Containern zur Verfügung stellen kann. Die nachfolgenden Einstellungen beziehen sich auf die Nutzung von Docker in Verbindung mit Portainer, bisher konnte ich die Runtime Typ Einstellungen im Container Manager von Synology nicht finden.
Um dem Container die Nutzung der Grafikkarte zu ermöglichen, benötigten wir den Eintrag "Nvidia" bei Typ im Reiter "Runtime & resources". Dieser wird leider nicht automatisch hinzugefügt, sondern muss von uns manuell eingefügt werden.
Dafür benutzen wir den Befehl sudo nvidia-ctk runtime configure --runtime=docker. Ich habe den Befehl über das Terminal ausgeführt, aber auch eine Ausführung über den Aufgabenplaner sollte möglich sein.
Nach einem Neustart des Docker Dienstes, sollte nun der Eintrag "nvidia" bei Typ im "Runtime & resources" Reiter vorhanden sein. Da ich zu blöd war, um zu erkennen, das ich den Container Manager auch über das Paket-Zentrum zu stoppen und wieder starten könnte, habe ich die komplette Kiste neu gestartet, welches den gleichen Effekt hat. Der Jellyfin Container kann jetzt die Grafikkarte für Transkodierung benutzen.
--------------------
Das ist mein erster Beitrag dieser Art und ich hoffe, er hat euch gefallen und viele weitere von euch werden sich an dem Thema "Nachrüsten einer Grafikkarte" anschließen, sodass wir weitere Erfahrungsberichte sammeln können.
Lg Marc
Auch für mich ist das Thema Hardware Transcoding interessant und so habe ich mich mal im Internet auf die Suche gemacht. Gefunden haben ich diesen Beitrag bei Reddit: reddit
Ich fand den Beitrag ganz interessant und habe mich gleich mal dran gemacht, dies auszuprobieren. Long Story short - es hat funktioniert und meine DS ist dabei keinen qualvollen Tod gestorben.
Ich erkläre euch hier, wie Ihr dies nachbauen könnt.
Was wird benötigt:
Synology Diskstation mit PCIe Erweiterungssteckplatz
Low-Profil-Grafikkarte ohne externen Stromanschluss
Adapter für PCIe 3.0x16 auf 3.0x8 Link: Amazon
Hardware Installation:
Zuerst muss die Slot Blende von der Grafikkarte entfernt werden, ansonsten passt diese nicht in das Gehäuse. Bei der T400 wird die Blende mit zwei Schrauben an der Grafikkarte gehalten. Schrauben gelöst und schon hat man die Blende in der Hand. In dem Zuge habe ich auch gleich mal den Kühlerkörper entfernt und die Wärmeleitpaste ausgetauscht. Nur noch Adapter und Grafikkarte zusammen stecken und die Karte ist bereit für den Einbau in unser NAS.
Nachdem die Karte für den Einbau vorbereitet wurde, fahren wir die Synology herunter, trennen diese von Strom und Netzwerk und öffnen das Gehäuse. Bei meiner DS1621+ wird der Deckel des Gehäuses durch 6 Schrauben gehalten, diese lösen und den Deckel nach hinten wegschieben. Nun kann man den Grafikkarten-Adapter-Verbund in den PCIe Steckplatz einsetzten.
Leider gibt es keine gute Möglichkeit die Karte in dieser Position zu befestigen. Mit einem 3D-Drucker und einer Schieblehre könnte man sich einen entsprechenden Halter drucken. Die "Bewegungsfreiheit" bei meiner Karte ist nicht so groß, das ich mir Sorgen machen, das die Rückseite der Grafikkarte den Metallkäfig der Festplatten berühren wird.
Zum Schluss nur noch die Synology wieder verschließen, mit Strom und Netzwerk verbinden und unser NAS ist bereit für die Software Installation.
Software Installation:
Nachdem die Synology hochgefahren ist, verbinden wir uns über den Browser mit der DSM Oberfläche.
Für die Installation benötigen wir die SPK für die Nvidia Runtime Libary welche wir hier finden können: https://github.com/pdbear/syno_nvidia_gpu_driver/releases
Ich habe die Version vom 20.07.2024 genommen und erhielt die Datei "NVIDIARuntimeLibrary-x86_64-535.154.05-20240720-common-sign.spk".
Über Manuelle Installation im Packet-Zentrum installiert man das Paket. Da der Entwickler aus China kommt und ungünstigerweise die Beschreibung des Paketes nicht ins Englische übersetzt hat, nutze ich die Kamera-Funktion des Google Übersetzer.
Nachdem allgemeinen Lizenz Bla Bla kommt, die erste Auswahl, die wir treffen müssen: Hierbei geht es darum, ob wir den Treiber für eine physische oder eine virtuelle Grafikkarte, die zum Beispiel vom einem Host an eine virtuelle Maschine weiter geleitet wird, installieren wollen. Ich habe die obere Option ausgewählt.
Bei der nächsten Seite, geht es um eine Zertifikatsstelle für die virtuelle Grafikkarte, da dies bei mir nicht der Fall ist, bin ich einfach über Weiter zum nächsten Schritt gegangen.
In den nächsten Schritten sollte die Installation zum Abschluss gebracht werden und keine weitere Auswahl folgen. Wenn die Installation abgeschlossen ist, sollte nun das Paket Nvidia GPU Driver installiert sein.
Nachdem die Paketinstallation abgeschlossen ist, muss der Befehl
Code:
vgpuDaemon fix
Bei der Eingabe über das Terminal, muss sudo vorangesetzt werden, damit dieser Befehl mit root rechten ausgeführt wird.
Bei der Variante über den Aufgabenplaner muss die Aufgabe mit dem Nutzer root ausgeführt werden.
Jetzt nur noch die Synology neu starten und die Grafikkarte sollte vom System erkannt werden. Dies kann über das Info-Center in der Systemsteuerung oder dem Befehl nvidia-smi im Terminal überprüft werden. Wie man unschwer erkennen kann, kann dieser Befehl auch dafür genutzt werden, zu sehen ob Anwendungen auch wirklich die Grafikkarte benutzen. Auch im Ressourcen-Monitor ist die Grafikkarte jetzt vertreten und dessen Auslastung bzw. die Auslastung des Grafikkartenspeichers kann eingesehen werden.
Bei mir war es nicht der Fall, aber im originalen Reddit Post wurde erwähnt, sollte die Grafikkarte zu diesem Zeitpunkt noch nicht erkannt worden sein, muss der Befehl vgpuDaemon fix erneut ausgeführt werden. Diesmal erweitert mit vgpuDaemon stop und vgpuDaemon start.
Mein über das Paket Zentrum installierter Emby Server übernahm direkt die Einstellungen für das Hardware Transcoding über die Grafikkarte.
Unlimited Transcoding Patch:
Der Ersteller des Reddit Posts ließ durchscheinen, das es eine Limitierung der Anzahl von gleichzeitigen Transcoding Sessions (3 gleichzeitig) gibt. Da ich alleiniger Nutzer meines Datensklaven bin, habe dieses Problem bisher noch nicht und deswegen diesen Punkt übersprungen. Sollte dies für dich jedoch ein Thema sein, es gibt einen Patch, der die Limitierung aufhebt. Dieser kann auf Github heruntergeladen werden: Link: https://github.com/keylase/nvidia-patch
Nachdem man den Patch heruntergeladen und auf dem NAS gespeichert hat, bewegt man sich via Terminal zum Speicherort des Patches und führt dann den Patch mit dem Befehl bash ./patch.sh aus.
GPU-Nutzung im Docker:
Da ich gerade Jellyfin über Docker teste, interessierte es mich, ob ich die Grafikkarte auch den Docker Containern zur Verfügung stellen kann. Die nachfolgenden Einstellungen beziehen sich auf die Nutzung von Docker in Verbindung mit Portainer, bisher konnte ich die Runtime Typ Einstellungen im Container Manager von Synology nicht finden.
Um dem Container die Nutzung der Grafikkarte zu ermöglichen, benötigten wir den Eintrag "Nvidia" bei Typ im Reiter "Runtime & resources". Dieser wird leider nicht automatisch hinzugefügt, sondern muss von uns manuell eingefügt werden.
Dafür benutzen wir den Befehl sudo nvidia-ctk runtime configure --runtime=docker. Ich habe den Befehl über das Terminal ausgeführt, aber auch eine Ausführung über den Aufgabenplaner sollte möglich sein.
Nach einem Neustart des Docker Dienstes, sollte nun der Eintrag "nvidia" bei Typ im "Runtime & resources" Reiter vorhanden sein. Da ich zu blöd war, um zu erkennen, das ich den Container Manager auch über das Paket-Zentrum zu stoppen und wieder starten könnte, habe ich die komplette Kiste neu gestartet, welches den gleichen Effekt hat. Der Jellyfin Container kann jetzt die Grafikkarte für Transkodierung benutzen.
--------------------
Das ist mein erster Beitrag dieser Art und ich hoffe, er hat euch gefallen und viele weitere von euch werden sich an dem Thema "Nachrüsten einer Grafikkarte" anschließen, sodass wir weitere Erfahrungsberichte sammeln können.
Lg Marc