Ce document explique comment utiliser des configurations basées sur des profils pour simplifier l'adoption et améliorer les performances de Cloud Storage FUSE pour vos charges de travail d'intelligence artificielle ou de machine learning (IA/ML).
Pour vous aider à simplifier la configuration de Cloud Storage FUSE pour vos charges de travail de diffusion, de création de points de contrôle ou d'entraînement, vous pouvez appliquer des profils préconfigurés en fonction de votre type de charge de travail à l'aide du champ profile ou de l'option --profile. À l'aide du champ ou de l'option, vous pouvez spécifier un ensemble prédéfini et optimisé de fonctionnalités Cloud Storage FUSE pour la mise en cache, le multithreading et les tailles de mémoire tampon. Vous garantissez ainsi des performances élevées avec un minimum d'efforts pour les charges de travail d'entraînement, de création de points de contrôle et de diffusion, avec les valeurs de profil aiml-training, aiml-checkpointing et aiml-serving, respectivement.
Remarques
Vous ne pouvez définir l'option
--profileou le champprofileque lors d'une opération de montage. Si vous devez mettre à jour l'option--profileou le champprofile, vous devez remonter votre bucket Cloud Storage FUSE.Lorsque vous utilisez des configurations basées sur des profils, Cloud Storage FUSE définit la capacité et la durée de vie (TTL) du cache de métadonnées sur "illimité", ce qui signifie que les entrées ne sont jamais supprimées du cache de métadonnées. Si votre machine virtuelle ne dispose pas de suffisamment de mémoire, vous pouvez rencontrer des erreurs de mémoire insuffisante (OOM). Nous vous recommandons donc de vérifier votre capacité de mémoire avant d'appliquer des configurations basées sur des profils. Les erreurs de mémoire insuffisante sont plus susceptibles de se produire sur les machines disposant de moins d'un tébioctet de mémoire.
Lorsqu'un paramètre Cloud Storage FUSE est configuré de plusieurs manières, l'ordre de priorité suivant s'applique (du plus élevé au plus bas) :
- Valeurs définies directement dans une commande
gcsfuseou dans un fichier de configuration Cloud Storage FUSE. - Valeurs définies par un profil, où le profil est spécifié à l'aide de l'option
--profiledans une commandegcsfuseou du champprofiledans un fichier de configuration Cloud Storage FUSE. - Valeurs par défaut appliquées automatiquement lorsque Cloud Storage FUSE détecte un type de machine à hautes performances. Pour en savoir plus, consultez Valeurs de configuration automatiques pour les types de machines hautes performances.
- Valeurs définies directement dans une commande
Les volumes CSI FUSE Cloud Storage dans les pods Google Kubernetes Engine ne sont pas compatibles avec le champ
profileni l'option--profile.La mise en cache des fichiers ne peut pas être activée à l'aide de configurations basées sur des profils, car elle nécessite l'utilisation de champs de configuration Cloud Storage FUSE et d'options de l'interface de ligne de commande Cloud Storage FUSE qui ne peuvent pas être généralisés. Pour activer la mise en cache des fichiers pour les charges de travail de diffusion, d'entraînement ou de checkpointing, vous devez configurer explicitement les options ou les champs de mise en cache des fichiers.
Appliquer des configurations basées sur des profils pour les charges de travail d'entraînement
Le profil spécifique à l'entraînement optimise les performances pour les lectures à haut débit de grands ensembles de données et empêche le matériel Cloud GPU et Cloud TPU d'attendre les données.
Pour appliquer le profil spécifique à l'entraînement, spécifiez profile: aiml-training à l'aide d'un fichier de configuration Cloud Storage FUSE ou --profile=aiml-training à l'aide de la CLI Cloud Storage FUSE. Les configurations suivantes sont ensuite appliquées :
# Create implicit directories locally when accessed:
- implicit-dirs
# Disable caching for lookups of files or directories that don't exist:
- metadata-cache:negative-ttl-secs:0
# Keep cached metadata (file attributes, types) indefinitely time-wise:
- metadata-cache:ttl-secs:-1
# Allow unlimited size for the file attribute (stat) cache:
- metadata-cache:stat-cache-max-size-mb:-1
# Allow unlimited size for the file/directory type cache:
- metadata-cache:type-cache-max-size-mb:-1
Appliquer des configurations basées sur des profils pour les charges de travail de point de contrôle
Le profil spécifique à la gestion des points de contrôle optimise les performances pour les écritures à haut débit de fichiers volumineux en réduisant considérablement le temps nécessaire pour enregistrer des points de contrôle de plusieurs gigaoctets, ce qui minimise les pauses d'entraînement.
Pour appliquer le profil spécifique au checkpointing, spécifiez profile: aiml-checkpointing à l'aide d'un fichier de configuration Cloud Storage FUSE ou --profile=aiml-checkpointing à l'aide de la CLI Cloud Storage FUSE. Les configurations suivantes sont ensuite appliquées :
# Create implicit directories locally when accessed:
- implicit-dirs
# Disable caching for lookups of files/dirs that don't exist:
- metadata-cache:negative-ttl-secs:0
# Keep cached metadata (file attributes, types) indefinitely time-wise:
- metadata-cache:ttl-secs:-1
# Allow unlimited size for the file attribute (stat) cache:
- metadata-cache:stat-cache-max-size-mb:-1
# Allow unlimited size for the file/directory type cache:
- metadata-cache:type-cache-max-size-mb:-1
# Cache the entire file when any part is read sequentially:
- file-cache:cache-file-for-range-read:true
# Allow renaming directories with a lot of files in non-HNS buckets.
- file-system:rename-dir-limit:200000
Appliquer des configurations basées sur des profils pour les charges de travail de diffusion
La diffusion optimise les performances des charges de travail de diffusion en améliorant l'accès aux données et les mécanismes de mise en cache.
Pour appliquer le profil spécifique au service, spécifiez profile: aiml-serving à l'aide d'un fichier de configuration Cloud Storage FUSE ou --profile=aiml-serving à l'aide de la CLI Cloud Storage FUSE. Les configurations suivantes sont ensuite appliquées :
# Create implicit directories locally when accessed:
- implicit-dirs
# Disable caching for lookups of files/dirs that don't exist:
- metadata-cache:negative-ttl-secs:0
# Keep cached metadata (file attributes, types) indefinitely time-wise:
- metadata-cache:ttl-secs:-1
# Allow unlimited size for the file attribute (stat) cache:
- metadata-cache:stat-cache-max-size-mb:-1
# Allow unlimited size for the file/directory type cache:
- metadata-cache:type-cache-max-size-mb:-1
# Cache the entire file when any part is read sequentially:
- file-cache:cache-file-for-range-read:true
# Enable kernel-list-cache to make listing faster as this is a readonly file system hierarchy.
- file-system:kernel-list-cache-ttl-secs:-1
Étapes suivantes
En savoir plus sur les valeurs de configuration automatiques pour les types de machines hautes performances
Découvrez comment optimiser les performances avec les fichiers YAML GKE préconfigurés.