Analyse de performance de DAMO-YOLO pour la détection de mobiles : suivi GPU, VRAM et CPU

Présantation du projet

Nous allons analyser les performances d'un système de détection de téléphones mobiles basé sur l'architecture DAMO-YOLO, optimisé pour les environnements à faible puissance de calcul. L'objectif est de déterminer précisément les besoins en ressources matérielles (GPU, VRAM, CPU) de cette application d'inférence légère.

Environnement de test et méthodologie

Configurations matérielles

L'évaluation a été réalisée sur trois configurations distinctes afin de couvrir différents cas d'usage :

Configuration Processeur graphique Processeur Mémoire système Notes
Configuration Alpha NVIDIA T4 (16 Go) Intel Xeon, 8 cœurs 32 Go Serveur cloud standard
Configuration Beta NVIDIA RTX 3060 (12 Go) AMD Ryzen, 6 cœurs 16 Go GPU grand public
Configuration Gamma Intégré uniquement Intel i5, 4 cœurs 8 Go Mode exclusif CPU

Outils de surveillance

Les métriques de performance ont été collectées à l'aide des utilitaires suivants :

# Surveillance du processeur graphique via un intervalle d'une seconde
nvidia-smi --loop=1

# Surveillance de l'utilisation CPU et de la mémoire système
htop
vmstat 1

# Suivi détaillé au niveau des processus
pidstat -d -u -p ALL 1

Scénarios de test

  1. État de repos : Consommation de base du système chargé mais inactif.
  2. Inférence unitaire : Charge maximale lors du traitemant d'une seule image.
  3. Test de charge continue : Consommation en régime permanent lors d'un flux continu d'images.

Analyse des résultats

Occupation des ressources graphiques

Les mesures pour la Configuration Alpha (NVIDIA T4) sont résumées ci-dessous :

Scénario Utilisation GPU Mémoire VRAM utilisée Consommation électrique
État de repos 0-2% ~1,2 Go 25 W
Inférence unitaire 35-45% ~1,5 Go 65 W
Charge continue 40-50% ~1,5 Go 70 W

Pour la Configuration Beta (NVIDIA RTX 3060) :

Scénario Utilisation GPU Mémoire VRAM utilisée Consommation électrique
État de repos 0-1% ~0,8 Go 15 W
Inférence unitaire 25-35% ~1,1 Go 95 W
Charge continue 30-40% ~1,1 Go 100 W

Ces données confirment la nature légère du modèle DAMO-YOLO : l'empreinte mémoire VRAM n'excède pas 1,5 Go, et l'utilisation du GPU reste modérée, autorisant une exploitation simultanée d'uatres tâches sur la carte graphique.

Sollicitation du processeur et de la mémoire vive

Le modèle d'utilisation du CPU suit généralement cette tendance :

# Modèle typique de charge processeur
def profil_charge_cpu():
    # Phase d'initialisation : chargement du modèle, pic temporaire
    pic_demarrage = "60-80% (pendant 2-3 secondes)"
    
    # Fonctionnement normal : pré-traitement et post-traitement
    charge_normale = "15-25% (sur une machine 4 cœurs)"
    
    # Pointe d'inférence : assistance calculatoire au GPU
    pic_detection = "30-40% (pointe brève)"
    
    return "Charge CPU globale faible"

L'empreinte mémoire vive (RAM) mesurée :

Configuration Mémoire de base Mémoire maximale observée Mémoire recommandée
Alpha (32 Go) 1,2 Go 1,8 Go 4 Go+
Beta (16 Go) 1,1 Go 1,7 Go 4 Go+
Gamma (8 Go) 1,0 Go 1,6 Go 4 Go+

Thermique et gestion de la chaleur

Lors d'une utilisation prolongée sur la Configuration Beta (1 heure), les températures se stabilisent sans atteindre de niveaux critiques : le GPU passe de 35°C à 68°C, le CPU reste entre 45°C et 55°C, et les ventilateurs tournent à environ 40% de leur vitesse maximale, avec un niveau sonore modéré.

Recommandations d'optimisation

Suggestions de configuration matérielle

# Configuration minimale
GPU: 4 Go de VRAM ou plus (ex: GTX 1650)
CPU: 4 cœurs ou plus
RAM: 8 Go
Stockage: 200 Mo d'espace libre

# Configuration recommandée pour un usage confortable
GPU: 8 Go de VRAM (ex: RTX 3060)
CPU: 8 cœurs
RAM: 16 Go

Ajustements et techniques de surveillance

Pour réduire l'empreinte mémoire GPU, on peut ajuster les paramètres d'inférence :

# Paramètres d'inférence ajustables
parametres_detection = {
    'taille_lot': 4,          # Réduire pour diminuer l'occupation VRAM
    'seuil_confiance': 0.5,   # Ajuster selon les besoins de précision
    'accelerateur': 'cuda'    # Choisir l'unité de calcul
}

Un script de surveillance système peut être implémenté ainsi :

#!/bin/bash
# Script de surveillance des ressources en temps réel
while true; do
    echo "--- $(date) ---"
    nvidia-smi --query-gpu=utilization.gpu,memory.used --format=csv,noheader
    echo "Charge CPU: $(mpstat 1 1 | awk '/Average:/ {print $3}')%"
    echo "Mémoire utilisée: $(free -m | awk '/Mem:/ {print $3}') Mo"
    sleep 3
done

Besoins en ressources par scénario de déploiement

Cas d'usage Utilisateurs simultanés Besoin GPU Besoin CPU Besoin RAM
Usage personnel 1-2 4 Go VRAM 4 cœurs 8 Go
Petite équipe 5-10 8 Go VRAM 8 cœurs 16 Go
Déploiement en entreprise 20-50 16 Go VRAM 16 cœurs 32 Go

Les coûts d'exploitation estimés sur des plateformes cloud publics varient de 50 à 1500 euros mensuels selon l'échelle du déploiement et la tarification à l'usage.

Étiquettes: DAMO-YOLO détection d'objets optimisation GPU surveillance système inférence mobile

Publié le 26 juin à 23h41