Gleichzeitiger CUDA+ROCm-Betrieb in llama.cpp mit neuem GGML-Backend
Der Post dokumentiert erstmals einen funktionierenden Dual-Backend-Setup in llama.cpp, bei dem NVIDIA- und AMD-GPUs gleichzeitig für Inferenz genutzt werden. Die Lösung nutzt das experimentelle `-DGGML_BACKEND_DL`-Flag, das Backend-Bibliotheken zur Laufzeit lädt statt sie zu kompilieren. Der Autor verteilte das Minimax-2.7-Modell über CUDA (Tensor-Cores der NVIDIA-GPU), ROCm (AMD-GPU) und CPU-Host-Speicher, wobei alle 63 Schichten vollständig offloaded wurden. Besondere Herausforderung war die CMake-Konfiguration mit korrekten Compiler-Pfaden und die Entfernung inkompatibler CPU-Varianten-Flags für Ryzen-Prozessoren. Der praktische Testfall zeigt llama-server mit 91.920 Token Kontextfenster, was für Production-Szenarien typisch ist. Der Hauptgewinn liegt in schnellerer Prefill-Phase durch parallele Nutzung beider Accelerator-Architekturen.
- Modelgewichte auf drei Speicherebenen verteilt: CUDA0 (83,6 GiB), ROCm0 (40,3 GiB), CUDA_Host (622 MiB); alle 63 Layer offloaded
- Build-Flag `-DGGML_BACKEND_DL=ON` ermöglicht dynamisches Laden beider Backend-Bibliotheken statt statischer Kompilierung
- ROCm 6.4 + CUDA 13.1 kombiniert; auf Alderlake-CPU-Varianten mit `-DGGML_CPU_ALL_VARIANTS=ON` Kompilierungsfehler zu beheben
- Hauptvorteil: verbesserte Prefill-Performance durch Multi-GPU-Parallelisierung
- llama-server läuft mit 91.920 Token Kontext, 16 Threads, Flash-Attention und Q8_0 Key/Value-Cache
Frag die KI zum Artikel
Folgefragen zu Headline, Quelle und Volltext — Antwort streamt in wenigen Sekunden.
Verwandte Beiträge
Gleichzeitiger CUDA+ROCm-Betrieb in llama.cpp mit neuem GGML-Backend
Der Post dokumentiert erstmals einen funktionierenden Dual-Backend-Setup in llama.cpp, bei dem NVIDIA- und AMD-GPUs gleichzeitig für Inferenz genutzt werden. Die Lösung nutzt das experimentelle `-DGGML_BACKEND_DL`-Flag, das Backend-Bibliotheken zur Laufzeit lädt statt sie zu kompilieren. Der Autor verteilte das Minimax-2.7-Modell über CUDA (Tensor-Cores der NVIDIA-GPU), ROCm (AMD-GPU) und CPU-Host-Speicher, wobei alle 63 Schichten vollständig offloaded wurden. Besondere Herausforderung war die CMake-Konfiguration mit korrekten Compiler-Pfaden und die Entfernung inkompatibler CPU-Varianten-Flags für Ryzen-Prozessoren. Der praktische Testfall zeigt llama-server mit 91.920 Token Kontextfenster, was für Production-Szenarien typisch ist. Der Hauptgewinn liegt in schnellerer Prefill-Phase durch parallele Nutzung beider Accelerator-Architekturen.
- Modelgewichte auf drei Speicherebenen verteilt: CUDA0 (83,6 GiB), ROCm0 (40,3 GiB), CUDA_Host (622 MiB); alle 63 Layer offloaded
- Build-Flag `-DGGML_BACKEND_DL=ON` ermöglicht dynamisches Laden beider Backend-Bibliotheken statt statischer Kompilierung
- ROCm 6.4 + CUDA 13.1 kombiniert; auf Alderlake-CPU-Varianten mit `-DGGML_CPU_ALL_VARIANTS=ON` Kompilierungsfehler zu beheben
- Hauptvorteil: verbesserte Prefill-Performance durch Multi-GPU-Parallelisierung
- llama-server läuft mit 91.920 Token Kontext, 16 Threads, Flash-Attention und Q8_0 Key/Value-Cache
Frag die KI zum Artikel
Folgefragen zu Headline, Quelle und Volltext — Antwort streamt in wenigen Sekunden.