Cette rubrique présente la solution de partage de GPU proposée par Alibaba Cloud, décrit les avantages de l'édition professionnelle du partage de GPU et compare les fonctionnalités ainsi que les cas d'utilisation de l'édition basique et de l'édition professionnelle. Vous pourrez ainsi mieux comprendre et utiliser le partage de GPU.
Contexte
Le partage de GPU vous permet d'exécuter plusieurs conteneurs sur le même dispositif GPU. Depuis qu'Alibaba Cloud Container Service for Kubernetes (ACK) a ouvert le code source du partage de GPU, vous pouvez déployer un framework de partage de GPU sur des clusters de conteneurs, que ce soit sur Alibaba Cloud ou dans des centres de données locaux. Cette approche permet à plusieurs conteneurs de partager le même dispositif GPU, réduisant ainsi les coûts d'utilisation.
Toutefois, s'il est essentiel de réaliser des économies, il est tout aussi crucial de garantir la stabilité des conteneurs fonctionnant sur le GPU. En isolant les ressources GPU allouées à chaque conteneur, vous limitez l'utilisation des ressources par chaque conteneur sur le même GPU et évitez les interférences mutuelles dues à une surconsommation. Pour répondre à cette problématique, l'industrie informatique propose diverses solutions, telles que NVIDIA vGPU, Multi-Process Service (MPS) et vCUDA, afin d'offrir une gestion plus fine de l'utilisation des GPU.
Pour satisfaire ces exigences, ACK a introduit la solution de partage de GPU. Celle-ci permet non seulement à plusieurs tâches de partager un seul GPU, mais assure également l'isolation de la mémoire et le partitionnement de la puissance de calcul GPU pour différentes applications s'exécutant sur le même GPU.
Fonctionnalités et avantages
La solution de partage de GPU s'appuie sur le pilote noyau serveur développé par Alibaba Cloud pour optimiser l'utilisation des pilotes sous-jacents des GPU NVIDIA. Le partage de GPU offre les fonctionnalités suivantes :
Compatibilité élevée : le partage de GPU est compatible avec les solutions open source standard, telles que Kubernetes et NVIDIA Docker.
Facilité d'utilisation : le partage de GPU offre une excellente expérience utilisateur. Pour remplacer une bibliothèque Compute Unified Device Architecture (CUDA) d'une application d'IA, nul besoin de recompiler l'application ni de créer une nouvelle image de conteneur.
Stabilité : le partage de GPU assure des opérations stables au niveau des GPU NVIDIA. Les appels aux API des bibliothèques CUDA et à certaines API privées de CUDA Deep Neural Network (cuDNN) sont complexes à gérer.
Isolation des ressources : le partage de GPU garantit que la mémoire GPU et la puissance de calcul allouées n'interfèrent pas entre elles.
Le partage de GPU propose une solution économique, fiable et conviviale qui permet d'activer la planification GPU et l'isolation de la mémoire.
|
Avantage |
Description |
|
Prend en charge le partage de GPU, la planification et l'isolation de la mémoire. |
|
|
Prend en charge des politiques flexibles de partage de GPU et d'isolation de la mémoire. |
|
|
Offre une surveillance complète des ressources GPU. |
Permet la supervision des GPU dédiés et des GPU partagés. |
|
Gratuit |
Vous devez activer la suite cloud-native AI avant d'utiliser le partage de GPU. À partir du 6 juin 2024 à 00:00:00 (UTC+8), la suite Cloud Native AI Suite est entièrement ouverte et gratuite. |
Remarques relatives à l'utilisation
Le partage de GPU est pris en charge uniquement sur les ACK Pro clusters. Pour plus d'informations sur l'installation et l'utilisation du partage de GPU, consultez les rubriques suivantes :
Vous pouvez également exploiter les fonctionnalités avancées suivantes proposées par le partage de GPU :
Termes
Mode partagé et mode exclusif
Le mode partagé permet à plusieurs pods de partager un seul GPU, comme illustré dans la figure suivante. 
Le mode exclusif permet à un pod d'occuper exclusivement un ou plusieurs GPU, comme indiqué dans la figure ci-dessous. 
Isolation de la mémoire GPU
Le partage de GPU garantit uniquement que plusieurs pods s'exécutent sur un même GPU, mais n'empêche pas la contention des ressources entre les pods lorsque l'isolation de la mémoire GPU est désactivée. L'exemple suivant illustre cette situation.
Le pod 1 demande 5 GiB de mémoire GPU et le pod 2 en demande 10 GiB. Lorsque l'isolation de la mémoire GPU est désactivée, le pod 1 peut utiliser jusqu'à 10 GiB de mémoire GPU, y compris les 5 GiB demandés par le pod 2. Par conséquent, le pod 2 ne parvient pas à démarrer en raison d'un manque de mémoire GPU. Une fois l'isolation de la mémoire GPU activée, si le pod 1 tente d'utiliser une quantité de mémoire supérieure à celle demandée, le module d'isolation force l'échec du pod 1. 