Mesurer le gain de vitesse
Comparez les performances naïves et tuilées.
Mesurer le gain de vitesse est une leçon CUDA Academy gratuite sur CoddyKit. Ceci est la leçon 4 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 CUDA Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours CUDA Academy comprend 4 leçons au total.
Démontrer le gain
Vous avez construit un kernel utilisant des tuiles, mais est-il réellement beaucoup plus rapide ? La mesure transforme une supposition en un nombre auquel vous pouvez faire confiance. 📊
Mesurer le temps sur l’horloge du GPU
Utilisez les événements CUDA pour mesurer le temps d’exécution des kernels. Ils se placent dans le flux du GPU et mesurent précisément le début et la fin du travail.
cudaEvent_t start, stop;
cudaEventCreate(&start);
cudaEventCreate(&stop);Encadrer le kernel
Enregistrez un événement avant le lancement et un autre après, puis synchronisez afin que la mesure attende réellement la fin du travail du GPU.
cudaEventRecord(start);
matmul<<<g,b>>>(...);
cudaEventRecord(stop);
cudaEventSynchronize(stop);Lire le temps écoulé
Demandez l’écart entre les événements en millisecondes. Ce nombre unique correspond au temps d’exécution mesuré de votre kernel.
float ms;
cudaEventElapsedTime(&ms, start, stop);Commencer par une mise en chauffe
Le tout premier lancement entraîne des coûts d’initialisation ponctuels. Exécutez un kernel de mise en chauffe avant la mesure afin d’évaluer la vitesse stabilisée et non le démarrage.
Faire la moyenne de plusieurs exécutions
Un seul échantillon est bruité. Mesurez le kernel plusieurs fois et calculez la moyenne pour obtenir un résultat stable et honnête.
Calculer l’accélération
L’accélération correspond simplement au temps naïf divisé par le temps avec tuiles. Une valeur de 4x signifie que le kernel avec tuiles s’est exécuté quatre fois plus vite.
float speedup = naive_ms / tiled_ms;Raisonner en GFLOPS
La multiplication de matrices effectue environ 2 * N^3 opérations en virgule flottante. Divisez ce nombre par votre temps pour exprimer les performances en GFLOPS, la référence standard.
double gflops = (2.0*N*N*N) / (ms * 1e6);Pourquoi les tuiles sont efficaces
L’accélération vient de la réduction drastique du trafic en mémoire globale. La réutilisation de la mémoire partagée alimente les cœurs au lieu de les laisser attendre des chargements lents.
Toujours vérifier la correction
Une réponse rapide mais fausse ne sert à rien. Comparez le résultat du GPU à une référence calculée par le CPU avant de célébrer l’accélération. ✅
Connaître votre plafond
Même la multiplication par tuiles reste derrière cuBLAS optimisé manuellement. Connaître l’écart vous indique quand poursuivre l’optimisation et quand utiliser une bibliothèque.
Vérification rapide
Rappelez-vous l’outil approprié pour mesurer le temps d’exécution des kernels du GPU.
Récapitulatif
Vous avez mesuré avec les événements CUDA, effectué une mise en chauffe, calculé des moyennes, déterminé l’accélération et les GFLOPS, puis vérifié la correction. Vous pouvez maintenant démontrer l’efficacité de vos optimisations. 🏁
Questions Fréquemment Posées
La leçon « Mesurer le gain de vitesse » est-elle gratuite ?
Oui — le texte complet de « Mesurer le gain de vitesse » 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 CUDA Academy, passe à CoddyKit PRO. Le cours CUDA Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Mesurer le gain de vitesse » ?
Comparez les performances naïves et tuilées. Tu pratiques CUDA 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 CUDA Academy ?
Aucune expérience préalable n'est requise. CUDA 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 4 sur 4.
Combien de temps prend la leçon « Mesurer le gain de vitesse » ?
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 CUDA Academy ?
Oui. Chaque leçon CUDA 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
- Le noyau matmul naïf
- Tuiler le produit scalaire
- Parcourir les phases des tuiles
- Mesurer le gain de vitesse