Analyser le goulet d’étranglement
Trouvez où le temps et la mémoire sont consommés.
Analyser le goulet d’étranglement est une leçon Deep Learning Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Deep Learning Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Deep Learning Academy comprend 4 leçons au total.
Pourquoi profiler d’abord
Avant d’optimiser, déterminez où le temps est réellement dépensé. Les suppositions font perdre du temps, tandis qu’un rapide profilage révèle les véritables points de ralentissement.
Deux goulots d’étranglement courants
L’entraînement s’arrête généralement à l’un de deux endroits : les calculs du GPU, qui effectuent les opérations mathématiques, ou le pipeline de données qui l’alimente. Il est essentiel de savoir lequel.
Commencer par une mesure approximative
Commencez simplement en chronométrant une section de la boucle. Une mesure approximative avec perf_counter vous oriente souvent vers la bonne zone en quelques secondes.
import time
t = time.perf_counter()
# run one batch
print(time.perf_counter() - t)Le travail du GPU est asynchrone
CUDA s’exécute en arrière-plan, les chronomètres naïfs sont donc trompeurs. Appelez d’abord synchronize pour vous assurer que le GPU a réellement terminé avant de relever le temps.
torch.cuda.synchronize()Le profileur intégré
Pour obtenir des détails précis, utilisez le gestionnaire de contexte torch.profiler. Il enregistre la durée de chaque opération sur le CPU et le GPU.
from torch.profiler import profileEncadrer le code à profiler
Exécutez la partie qui vous intéresse dans un bloc de profilage. Sélectionner les activités CPU et CUDA permet d’obtenir une vue d’ensemble.
with profile(activities=[ProfilerActivity.CPU, ProfilerActivity.CUDA]) as prof:
model(x)Lire le tableau
Affichez les résultats triés par coût pour voir les opérations les plus lourdes en tête. Le tableau key_averages regroupe les opérations identiques.
print(prof.key_averages().table(sort_by='cuda_time_total'))Repérer un goulot d’étranglement des données
Si le GPU reste souvent inactif en attendant des données, votre DataLoader est trop lent. Ajouter des processus de chargement ou mettre les données en cache corrige généralement ce manque.
Repérer un goulot d’étranglement des calculs
Si une opération matmul ou conv domine le tableau, la limite vient de la puissance de calcul brute. La précision mixte ou un modèle plus petit sont alors les leviers à utiliser.
Surveiller aussi la mémoire
Le profileur peut également signaler le pic de mémoire. Le suivi de profile_memory révèle quelles couches en consomment le plus et indique quoi réduire.
with profile(profile_memory=True) as prof:
model(x)Mesurer, modifier, mesurer à nouveau
L’optimisation est une boucle : profiler, effectuer une modification, puis profiler à nouveau. Fiez-vous aux chiffres, et non aux intuitions, pour confirmer qu’une correction a réellement été utile.
Vérification rapide
Votre GPU reste souvent inactif entre les lots. Quel est le goulot d’étranglement probable ?
Récapitulatif
Profilez avant d’optimiser : utilisez synchronize pour obtenir des mesures fiables, servez-vous de torch.profiler pour trouver les opérations les plus lourdes, puis corrigez le traitement des données ou les calculs et mesurez à nouveau. 🔍
Apprends Python avec un tuteur IA — gratuit
Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.
- Cours
- 30
- Leçons
- 120
Questions Fréquemment Posées
La leçon « Analyser le goulet d’étranglement » est-elle gratuite ?
Oui — le texte complet de « Analyser le goulet d’étranglement » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Deep Learning Academy, passe à CoddyKit PRO. Le cours Deep Learning Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Analyser le goulet d’étranglement » ?
Trouvez où le temps et la mémoire sont consommés. Tu pratiques Deep Learning Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Deep Learning Academy ?
Aucune expérience préalable n'est requise. Deep Learning Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.
Combien de temps prend la leçon « Analyser le goulet d’étranglement » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Deep Learning Academy ?
Oui. Chaque leçon Deep Learning Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Précision mixte avec autocast et GradScaler
- Accumulation des gradients pour les gros lots
- Analyser le goulet d’étranglement
- Réduire l’utilisation de la mémoire du GPU