WoolyAI ist ein hardwareunabhängiger Hypervisor, der entwickelt wurde, um die Infrastruktur für maschinelles Lernen (ML) zu optimieren, indem er die nahtlose Ausführung von unveränderten PyTorch- und CUDA-Anwendungen in heterogenen GPU-Umgebungen ermöglicht, einschließlich sowohl NVIDIA- als auch AMD-Hardware. Durch die Abstraktion von GPU-Abhängigkeiten verbessert WoolyAI die Ressourcennutzung, vereinfacht Entwicklungsabläufe und beschleunigt die Bereitstellung von ML-Anwendungen, ohne dass Codeänderungen erforderlich sind.
Hauptmerkmale und Funktionalität:
- Cross-Vendor CUDA-Ausführung: Nutzt Just-In-Time (JIT)-Kompilierung, um unveränderte PyTorch- und CUDA-Anwendungen auf gemischten GPU-Clustern auszuführen, die sowohl NVIDIA- als auch AMD-GPUs unterstützen.
- CPU-seitige Entwicklung mit GPU-Ausführung: Ermöglicht Entwicklern, PyTorch-Code auf reinen CPU-Arbeitsstationen zu erstellen und auszuführen, während CUDA-Kerne auf einem zentralen Pool von GPUs ausgeführt werden, wobei bestehende Entwicklungsumgebungen und -werkzeuge beibehalten werden.
- Einheitlicher CUDA-Container: Bietet einen einzigen CUDA-Container, der nahtlos auf NVIDIA- und AMD-GPUs arbeitet, CI/CD-Pipelines vereinfacht und die Notwendigkeit für mehrere Basis-Images reduziert.
- Dynamisches GPU-Ressourcenmanagement: Nutzt die Echtzeit-Zuweisung von GPU-Kernen und -Speicher, um die gleichzeitige Ausführung mehrerer ML-Workloads auf einer einzigen GPU ohne statische Partitionierung oder Zeitscheiben zu ermöglichen.
- VRAM-Deduplizierung und Multi-Adapter-Konkurrenz: Teilt Basismodellgewichte im VRAM, während Adapter isoliert werden, um die Speichereffizienz und den Durchsatz für Bewertungs- und Entwicklungsaufgaben zu maximieren.
Primärer Wert und gelöstes Problem:
WoolyAI adressiert die Herausforderungen beim Management diverser GPU-Infrastrukturen, indem es eine einheitliche Plattform bietet, die die GPU-Nutzung verbessert, die betriebliche Komplexität reduziert und die Bereitstellung von ML-Anwendungen beschleunigt. Es eliminiert die Notwendigkeit von Code-Neuschreibungen beim Wechsel zwischen verschiedenen GPU-Anbietern, unterstützt die gleichzeitige Ausführung mehrerer Workloads auf gemeinsamen GPUs und bietet eine dynamische Ressourcenallokation, um unterschiedlichen Anforderungen gerecht zu werden. Dies führt zu einer erhöhten Produktivität für ML-Operationsteams, einer kosteneffizienten Skalierung von GPU-Ressourcen und einer verbesserten Leistungskonsistenz über ML-Workloads hinweg.