Software Llama-CPPLocal AINvidiaProxmox

NVIDIA-GPU unter Proxmox VE für einen LXC-Container einrichten

Diese Anleitung ist die Fortsetzung meines Artikels zur Proxmox-Grundinstallation. Nachdem Proxmox VE erfolgreich eingerichtet wurde, geht es jetzt darum, die NVIDIA RTX 3060 für meinen Local-AI-Server vorzubereiten und anschließend für den LXC-Container 101 verfügbar zu machen.

nvidia llamacpp proxmox
0 Schritte 36 Views

Nachdem wir im vorherigen Artikel Proxmox VE als Grundlage für unseren Local-AI-Server installiert haben, geht es jetzt an einen der wichtigsten Schritte: Wir bringen die NVIDIA RTX 3060 dazu, innerhalb unseres LXC-Containers verwendet werden zu können.

Zum Einsatz kommt eine NVIDIA RTX 3060 mit 12 GB VRAM. Als Host läuft Proxmox VE 9.2.20. Der LXC-Container mit der ID 101 wird später unsere Umgebung für Docker, Docker Compose und llama.cpp bereitstellen.

Wie funktioniert der Aufbau 🤔❓

Die grundlegende Aufteilung ist dabei relativ einfach:

Der Proxmox-Host übernimmt die GPU.

Hier installieren wir den vollständigen NVIDIA-Treiber inklusive der benötigten Kernel-Module. Der Proxmox-Kernel ist für die Kommunikation mit der Grafikkarte verantwortlich und stellt die entsprechenden NVIDIA-Geräte bereit.

Der LXC-Container bekommt Zugriff auf diese GPU.

Im Container installieren wir anschließend den NVIDIA-Treiber erneut, allerdings ausdrücklich ohne Kernel-Module. Der Container verwendet damit die vom Host bereitgestellte GPU und deren Kernel-Schnittstelle, während die benötigten NVIDIA-Userspace-Komponenten innerhalb des Containers vorhanden sind.

Damit schaffen wir die Grundlage dafür, dass später auch Anwendungen innerhalb des Containers, insbesondere Docker und llama.cpp, auf die RTX 3060 zugreifen können.

Warum installieren wir den Treiber zweimal❓

Das wirkt auf den ersten Blick etwas ungewöhnlich. Auf dem Host benötigen wir den Treiber, damit der Linux-Kernel die Grafikkarte überhaupt verwalten kann.

Im Container benötigen Anwendungen dagegen die passenden NVIDIA-Bibliotheken und Werkzeuge, um mit dieser GPU kommunizieren zu können. Deshalb wird der NVIDIA-Treiber dort ebenfalls installiert, aber ohne die Kernel-Module.

Genau diese Trennung ist für unseren Aufbau entscheidend:

Proxmox Host: NVIDIA-Treiber + Kernel-Module
LXC 101: NVIDIA-Treiber ohne Kernel-Module
GPU: RTX 3060 mit 12 GB VRAM
Später: Docker + Docker Compose + llama.cpp

Ausblick: Multi-GPU

Der hier gezeigte Aufbau funktioniert grundsätzlich nicht nur mit einer einzelnen NVIDIA-GPU. Werden mehrere kompatible NVIDIA-Grafikkarten im Proxmox-Host betrieben, können auch mehrere GPUs für einen LXC-Container verfügbar gemacht werden.

Der entscheidende Punkt bleibt dabei derselbe: Die NVIDIA-Kernel-Module werden auf dem Proxmox-Host installiert und verwalten dort die vorhandenen Grafikkarten. Im LXC-Container werden die NVIDIA-Treiber weiterhin ohne eigene Kernel-Module installiert. Anschließend werden die benötigten GPU-Geräte des Hosts für den Container freigegeben.

Bei mehreren GPUs müssen entsprechend die zusätzlichen NVIDIA-Geräte berücksichtigt und dem Container zur Verfügung gestellt werden. Anwendungen wie llama.cpp können anschließend, abhängig von der jeweiligen Anwendung und deren GPU-Unterstützung, mehrere GPUs nutzen.

Damit ist der grundsätzliche Aufbau auch für einen späteren Multi-GPU-Local-AI-Server geeignet. Die eigentliche Konfiguration und Nutzung mehrerer GPUs, beispielsweise für größere Sprachmodelle, werde ich in einem späteren Schritt noch genauer zeigen.

Wir gehen jetzt Schritt für Schritt vor und überprüfen nach jedem wichtigen Abschnitt, ob die GPU weiterhin korrekt funktioniert.

← Zurück zu den Local AI-Anleitungen