WoolyAI est un hyperviseur indépendant du matériel conçu pour optimiser l'infrastructure d'apprentissage automatique (ML) en permettant l'exécution transparente d'applications PyTorch et CUDA non modifiées sur des environnements GPU hétérogènes, y compris le matériel NVIDIA et AMD. En abstrahant les dépendances GPU, WoolyAI améliore l'utilisation des ressources, simplifie les flux de travail de développement et accélère le déploiement des applications ML sans nécessiter de modifications de code.
Caractéristiques clés et fonctionnalités :
- Exécution CUDA multi-fournisseurs : Utilise la compilation Just-In-Time (JIT) pour exécuter des applications PyTorch et CUDA non modifiées sur des clusters GPU mixtes, prenant en charge à la fois les GPU NVIDIA et AMD.
- Développement côté CPU avec exécution GPU : Permet aux développeurs de créer et d'exécuter du code PyTorch sur des stations de travail uniquement CPU, tandis que les noyaux CUDA s'exécutent sur un pool centralisé de GPU, en maintenant les environnements et outils de développement existants.
- Conteneur CUDA unifié : Fournit un conteneur CUDA unique qui fonctionne de manière transparente sur les GPU NVIDIA et AMD, simplifiant les pipelines CI/CD et réduisant le besoin de plusieurs images de base.
- Gestion dynamique des ressources GPU : Emploie l'allocation en temps réel des cœurs et de la mémoire GPU, permettant l'exécution simultanée de plusieurs charges de travail ML sur un seul GPU sans partitionnement statique ou découpage temporel.
- Déduplication de la VRAM et concurrence multi-adaptateurs : Partage les poids de modèle de base dans la VRAM tout en isolant les adaptateurs, maximisant l'efficacité de la mémoire et le débit pour les tâches d'évaluation et de développement.
Valeur principale et problème résolu :
WoolyAI répond aux défis de la gestion des infrastructures GPU diversifiées en fournissant une plateforme unifiée qui améliore l'utilisation des GPU, réduit la complexité opérationnelle et accélère le déploiement des applications ML. Il élimine le besoin de réécriture de code lors de la transition entre différents fournisseurs de GPU, prend en charge l'exécution simultanée de plusieurs charges de travail sur des GPU partagés, et offre une allocation dynamique des ressources pour répondre aux demandes variées. Cela se traduit par une productivité accrue pour les équipes d'opérations ML, une mise à l'échelle rentable des ressources GPU, et une amélioration de la cohérence des performances à travers les charges de travail ML.