-
Bedeutung von MLC-LLM
- MLC-LLM ermöglicht die Kompilierung und Bereitstellung von LLMs auf AMD-GPUs mit ROCm.
- Die AMD Radeon™ RX 7900 XTX liefert 80 % der Leistung der NVIDIA® GeForce RTX™ 4090 und 94 % der NVIDIA RTX™ 3090 Ti.
- Durch die Vulkan-Unterstützung kann die Bereitstellung von LLMs auch auf AMD-APU-Geräten wie dem SteamDeck erfolgen.
-
Hintergrund
- Nach der Verbreitung von Open-Source-LLMs sind viele LLM-Inferenzlösungen entstanden.
- Die meisten leistungsfähigen Inferenzlösungen sind CUDA-basiert und auf NVIDIA-GPUs optimiert.
- Aufgrund der hohen Nachfrage nach Rechenverfügbarkeit ist die Unterstützung einer breiteren Palette von Hardwarebeschleunigern sinnvoll.
- AMD ist ein potenzieller Kandidat.
-
Hardware- und Software-Diskussion
- Die AMD RX 7900 XTX hat eine mit der NVIDIA RTX 4090 und RTX 3090 Ti vergleichbare Ausstattung.
- Alle Modelle verfügen über 24 GB Speicher, sodass Modelle gleicher Größe genutzt werden können.
- Die FP16-Leistung ist bei der 4090 rund doppelt so hoch wie bei der 7900 XTX, bei der 3090 Ti rund 1,3-mal so hoch.
- Die RX 7900 XTX ist 40 % günstiger als die RTX 4090.
- AMD ist in der Vergangenheit nicht wegen der Hardware, sondern wegen fehlender Softwareunterstützung ins Hintertreffen geraten.
-
MLC für ROCm
- Machine Learning Compiler (MLC) ist eine neue Technologie, die die Optimierung von ML-Arbeitslasten automatisiert.
- MLC-LLM basiert auf Apache TVM Unity und bietet eine leistungsstarke universelle Bereitstellung für verschiedene Backends.
- Mit einem Python-basierten Workflow werden Sprachmodelle kompiliert und das Layout sowie das Scheduling der GPU-Kernels optimiert.
-
MLC für AMD-GPUs und APU
- Es gibt mehrere Wege, um AMD-GPUs zu unterstützen: ROCm, OpenCL, Vulkan, WebGPU.
- Der ROCm-Stack, den AMD derzeit vorantreibt, enthält viele Komponenten, die dem CUDA-Stack ähneln.
- Vulkan ist ein moderner Grafikstandard und bietet die größte Breite an Unterstützung über GPU-Geräte hinweg.
- MLC unterstützt automatische Code-Generierung, sodass verschiedene Ansätze unterstützt werden können, ohne jeden GPU-Kernel neu zu strukturieren.
-
Benchmarking mit dem MLC-Python-Paket
- Das Benchmarking von Llama 2 7B und 13B erfolgte mit 4-Bit-Quantisierung.
- Die Inferenzleistung im Single-Batch erreicht mit dem Release von ROCm 5.6 rund 80 % der Geschwindigkeit der NVIDIA 4090.
-
Ausführung auf SteamDeck mit Vulkan
- Die Ausführung auf einem SteamDeck mit AMD-APU ist mit Vulkan möglich.
- Unter ROCm ist der GPU-VRAM im BIOS auf 4 GB begrenzt, während der Mesa-Vulkan-Treiber den integrierten Speicher auf bis zu 16 GB erweitern kann.
-
Diskussion und weitere Arbeit
- Die Verfügbarkeit von Rechenressourcen ist in der Ära der Generativen KI zu einer zentralen Herausforderung geworden.
- ML-Compilation ermöglicht eine leistungsstarke universelle Bereitstellung über alle Hardware-Backends hinweg.
- Forschung auf Consumer-GPUs kann auf Cloud-GPUs verallgemeinert werden.
- Die Community wird ermutigt, Lösungen auf Basis des MLC-Universal-Deployment-Workflows zu bauen.
-
Schlussfolgerung
- Machine-Learning-System-Engineering ist eine anhaltende Herausforderung.
- NVIDIA führt dieses Feld weiterhin durch Innovation an und dürfte sich durch neue Entwicklungen bei Hardware und Software ändern.
- Dank des Python-basierten ML-Compile-Entwicklungsflows konnten ROCm-Optimierungs-Setups in nur wenigen Stunden gewonnen werden.
-
Links und Danksagung
- Eine ausführliche Anleitung zur Bereitstellung von MLC LLM findet sich auf der Projektseite.
- Den Quellcode von MLC LLM gibt es im offiziellen GitHub-Repository.
- Dank an die Apache TVM-Community und die Entwickler des TVM Unity-Compilers.
1 Kommentare
Hacker News Kommentar