Métriques GPU Dataflow

Cette page couvre les métriques GPU compatibles avec Dataflow. Vous pouvez utiliser ces métriques pour surveiller l'état et l'utilisation du GPU. La plupart des métriques sont compatibles avec toutes les tâches Dataflow, mais certaines nécessitent une configuration supplémentaire pour de nombreux modèles de GPU.

Prérequis

Les métriques GPU ne sont collectées que par les tâches Dataflow qui ont explicitement demandé des GPU. Pour en savoir plus, consultez la section Compatibilité avec les GPU.

Présentation

Bien que Dataflow signale de nombreuses métriques GPU, les principales sont la mémoire totale et la mémoire utilisée, qui sont équivalentes aux métriques RAM, ainsi que l'activité et l'occupation du multiprocesseur de flux (SM), qui sont les équivalents les plus proches des métriques de processeur Dataflow. D'autres métriques sont abordées dans les sections Métriques courantes et Métriques GPM.

La mémoire totale et la mémoire utilisée de chaque appareil GPU de la tâche sont signalées par défaut. Dans l'interface de surveillance Dataflow, elles apparaissent sous "Utilisation GPU de base". Ces métriques ne sont pas identiques au "Pourcentage d'accès à la mémoire", qui se trouve également sous les métriques GPU de base, mais qui indique le pourcentage de temps pendant lequel la mémoire de l'appareil GPU a été consultée.

L'activité et l'occupation du SM sont des métriques GPM. Ces métriques ne sont pas compatibles avec les appareils P4 et P100, mais elles le sont par défaut avec les appareils H100 et versions ultérieures. Pour tous les autres appareils, tels que les appareils T4 et L4, une configuration supplémentaire est nécessaire. Pour savoir comment les activer, consultez la section Collecte GPM. Si elles sont collectées sur la tâche, ces métriques se trouvent sous "Utilisation du GPM du GPU" dans l'interface de surveillance Dataflow.

Principes de base des métriques GPU Dataflow

Toutes les métriques GPU sont envoyées par les nœuds de calcul Dataflow à Cloud Monitoring. Les métriques par appareil se trouvent sous dataflow.googleapis.com/worker/accelerator/gpu. Toutes ces métriques sont regroupées dans des catégories générales, telles que l'utilisation ou la température, et elles comportent toutes les libellés suivants :

  • device_uuid : identifie de manière unique l'appareil GPU, quel que soit le nœud de calcul ou le pipeline.
  • device_number : numéro attribué à l'appareil sur le nœud de calcul dans la plage [0, N), où N est le nombre d'appareils GPU sur le nœud de calcul.
  • device_model : modèle du GPU, tel que "Tesla T4".

device_uuid et device_model sont indépendants du nœud de calcul et sont toujours identiques pour le même appareil physique. device_number est lié à la façon dont il est identifié sur ce nœud de calcul.

Métriques GPU courantes pour Dataflow

Les métriques courantes sont signalées par chaque tâche Dataflow avec des GPU. Dans Monitoring, elles utilisent toutes le format suivant :

dataflow.googleapis.com/worker/accelerator/gpu/CATEGORY/NAME

Le tableau suivant présente chaque métrique, ainsi que sa catégorie, son nom, son unité et son objectif.

Métrique Catégorie Nom Unité Description
Pourcentage d'exécution du kernel utilisation device_kernel_runtime Pourcentage Pourcentage de temps pendant lequel au moins un kernel s'est exécuté sur le GPU. Cela indique uniquement que le GPU a été utilisé, et non si ses ressources de traitement sont utilisées efficacement.
Pourcentage d'accès à la mémoire utilisation device_memory_access Pourcentage Pourcentage de temps pendant lequel la mémoire de l'appareil a été lue ou écrite. Cela indique uniquement que la mémoire a été consultée, et non le pourcentage de mémoire utilisée.
Limite de mémoire mémoire device_limit MiB Quantité de mémoire disponible sur le GPU.
Utilisation de la mémoire mémoire device_usage MiB Quantité de mémoire utilisée par le GPU. Cela inclut à la fois la mémoire utilisée par la tâche Dataflow et la mémoire réservée au micrologiciel. Une certaine utilisation est donc attendue même si aucune mémoire n'a encore été transférée vers le GPU.
Limite de puissance power device_limit Watts Quantité maximale de puissance que l'appareil est configuré pour utiliser. Dataflow ne modifie pas la valeur par défaut.
Consommation électrique power device_usage Watts Quantité de puissance utilisée par l'appareil.
Température actuelle température device_current Celsius Température actuelle du GPU.
Température maximale de fonctionnement température device_max_op Celsius Température à laquelle le GPU doit rester. Si la température actuelle dépasse cette valeur, les pilotes GPU tentent de refroidir le GPU jusqu'à ce qu'il soit en dessous de cette température. Dataflow ne contrôle pas cela.
Température de ralentissement température device_slowdown Celsius Température à laquelle le GPU commence à limiter la bande passante. Si la température actuelle dépasse cette valeur, vous devez vous attendre à une dégradation des performances jusqu'à ce qu'elle refroidisse. Dataflow ne contrôle pas cela.
Température d'arrêt température device_shutdown Celsius Température à laquelle le GPU s'éteint. Si la température actuelle dépasse cette valeur, l'appareil devient indisponible. Dataflow ne contrôle pas cette température et ne tente pas activement de récupérer les GPU qui se sont arrêtés en raison d'une température excessivement élevée.
Horloge SM actuelle horloge device_sm_current MHz Vitesse actuelle de l'horloge SM. Si la température dépasse le seuil de ralentissement, cette valeur peut diminuer dans le cadre de la limitation de la bande passante liée au refroidissement.
Horloge SM maximale horloge device_sm_max MHz Vitesse maximale de l'horloge SM.
Horloge mémoire actuelle horloge device_memory_current MHz Vitesse actuelle de l'horloge mémoire. Si la température dépasse le seuil de ralentissement, cette valeur peut diminuer dans le cadre de la limitation de la bande passante liée au refroidissement.
Horloge mémoire maximale horloge device_memory_max MHz Vitesse maximale de l'horloge mémoire.

Métriques GPM pour Dataflow

Dataflow offre une certaine compatibilité avec les métriques GPM. Le niveau de compatibilité dépend du modèle de GPU et de la configuration de l'accélérateur. Par défaut, la plupart des tâches Dataflow avec des GPU nécessitent une configuration supplémentaire.

Les métriques GPM suivent les mêmes principes de base que les métriques courantes.

Métriques acceptées

Comme pour les métriques courantes, les chemins des métriques GPM ont le format suivant :

dataflow.googleapis.com/worker/accelerator/gpu/CATEGORY/NAME

Certaines de ces métriques appartiennent à la même catégorie que certaines métriques courantes.

Métrique Catégorie Nom Unité Description
Activité SM utilisation device_sm_activity Pourcentage Pourcentage de temps pendant lequel un warp a été actif sur le SM (moyenne pour l'ensemble des SM de l'appareil). Cette métrique est semblable au pourcentage d'exécution du kernel, mais elle offre une image plus précise qui indique mieux si les ressources du GPU sont utilisées efficacement. NVIDIA définit une utilisation efficace comme étant égale ou supérieure à 80 %, et une utilisation inefficace comme étant égale ou inférieure à 50 %.
Occupation SM utilisation device_sm_occupancy Pourcentage Pourcentage de warps actifs sur l'appareil par rapport au nombre maximal. Les tâches limitées par la mémoire doivent avoir une occupation plus élevée que les tâches limitées par le calcul, et la métrique Pourcentage d'accès à la mémoire peut fournir des informations à ce sujet. Pour en savoir plus, consultez la documentation NVIDIA sur l'occupation atteinte.
Activité du pipeline Tensor utilisation device_tensor_pipe_activity Pourcentage Pourcentage de temps pendant lequel le pipeline Tensor Core a été utilisé. Des valeurs plus élevées indiquent une plus grande utilisation des Tensor Cores du GPU, qui sont importants pour les opérations matricielles.
Activité du pipeline FP64 utilisation device_fp64_pipe_activity Pourcentage Pourcentage de temps pendant lequel le pipeline FP64 Core a été utilisé. Des valeurs plus élevées indiquent une plus grande utilisation des FP64 Cores du GPU, qui gèrent les opérations scalaires de valeurs à virgule flottante de 64 bits.
Activité du pipeline FP32 utilisation device_fp32_pipe_activity Pourcentage Pourcentage de temps pendant lequel le pipeline FP32 Core a été utilisé. Des valeurs plus élevées indiquent une plus grande utilisation des FP32 Cores du GPU, qui gèrent les opérations scalaires de valeurs à virgule flottante de 32 bits.
Activité du pipeline FP16 utilisation device_fp16_pipe_activity Pourcentage Pourcentage de temps pendant lequel le pipeline FP16 a été utilisé. Contrairement à FP64 et FP32, qui sont respectivement associés aux cœurs CUDA 64 bits et 32 bits, FP16 est associé à l'exploitation des capacités de demi-précision des Tensor Cores.
Lecture PCIe pcie device_read Mio/s Débit de données lues par le GPU à partir de la VM hôte via PCIe.
Transfert PCIe pcie device_transfer Mio/s Débit de transfert de données du GPU vers la VM hôte via PCIe.
Lecture NVLink nvlink device_read Mio/s Débit de données lues par le GPU via NVLink. Étant donné que NVLink ne couvre que la communication entre les GPU, cela n'est pas pertinent si chaque nœud de calcul ne dispose que d'un seul GPU.
Transfert NVLink nvlink device_transfer Mio/s Débit de transfert de données du GPU via NVLink. Étant donné que NVLink ne couvre que la communication entre les GPU, cela n'est pas pertinent si chaque nœud de calcul ne dispose que d'un seul GPU.

Collecte des métriques GPM

Toute tâche Dataflow avec des GPU utilisant l'architecture Hopper ou une version ultérieure (par exemple, H100, H100 Mega) collecte les métriques GPM par défaut. Aucune configuration supplémentaire n'est donc nécessaire. Toutefois, les tâches utilisant l'architecture Pascal ou une version antérieure (telles que P4 et P100) ne sont pas compatibles avec ces métriques.

Pour tous les autres modèles, la collecte de ces métriques nécessite l'ajout de install-gke-dcgm-exporter à la configuration de l'accélérateur de nœud de calcul. Exemple :

--experiment="worker_accelerator=type:TYPE;count:COUNT;install-nvidia-driver;install-gke-dcgm-exporter"

Cet indicateur installe un équivalent géré par GKE de l' exportateur NVIDIA DCGM. Les types suivants sont compatibles avec cette option :

  • nvidia-l4
  • nvidia-tesla-a100
  • nvidia-a100-80gb
  • nvidia-tesla-t4
  • nvidia-tesla-v100

Si un autre type est fourni, le service Dataflow renvoie une erreur lors de la création de la tâche. Cette vérification vous permet d'éviter d'exécuter le conteneur sur des tâches où il n'aide pas à la collecte de métriques.

Anciennes métriques

Dans Monitoring, vous pouvez voir deux métriques nommées dataflow.googleapis.com/job/gpu_utilization et dataflow.googleapis.com/job/gpu_memory_utilization. Ces métriques sont respectivement semblables au pourcentage d'exécution du kernel et au pourcentage d'accès à la mémoire, mais les nœuds de calcul les signalent en calculant la moyenne des GPU sur le nœud de calcul. Nous vous recommandons d'utiliser les équivalents par appareil, en particulier si les nœuds de calcul sont configurés pour avoir plusieurs GPU.

UI Dataflow

Si la tâche Dataflow comporte des GPU associés à ses nœuds de calcul, les métriques doivent apparaître dans l'onglet "Métriques de la tâche" de la page de la tâche, sous la catégorie "Dataflow ML". Cette catégorie n'apparaît pas sur les tâches sans GPU et prend quelques secondes à charger, car elle vérifie d'abord que les métriques sont pertinentes pour la tâche.

Les sous-catégories suivantes apparaissent sous "Dataflow ML" :

Sous-catégorie Métriques Conditions
Utilisation GPU de base Pourcentage d'exécution du kernel
Pourcentage d'accès à la mémoire
Mémoire totale/utilisée
Toutes les tâches GPU
Performances du GPU Consommation/limite de puissance
Lecture/limites de température
Toutes les tâches GPU
Utilisation du GPM du GPU Activité SM
Occupation SM
Activité du pipeline CUDA/Tensor
Métriques GPM activées
E/S du GPM du GPU Lecture/transfert PCIe
Lecture/transfert NVLink
Métriques GPM activées
Utilisation de l'ancien GPU Anciennes métriques Toutes les tâches GPU

Lorsque vous affichez des métriques non héritées, vous pouvez filtrer les graphiques sur un nom de nœud de calcul et un numéro d'appareil GPU spécifiques. Le nom du nœud de calcul est le même que celui de la VM s'il est affiché sous Compute Engine. Le numéro de l'appareil GPU est le même que celui des libellés de métriques. Vous pouvez utiliser ce filtrage pour vérifier les métriques sur un appareil GPU spécifique, par exemple pour voir à quel point sa consommation électrique est proche de sa limite :

Exemple de filtrage des métriques GPU par appareil