12

Analyse comparative de l'efficacité de calcul : mise en pratique

AI999第4课:现代计算底座与张量化并行演化
00:00

Cette page met la « comparaison de l'efficacité de calcul » en pratique dans une expérience reproductible :comparer l'efficacité de bout en bout, sur une même tâche évolutive, entre l'itération individuelle séquentielle sur CPU classique et le traitement par lots tensoriels sur GPU avec EvoX. L'objectif n'est pas de retenir la conclusion « le GPU est plus rapide », mais de comprendre d'où vient réellement l'accélération apportée par la parallélisation tensorisée, quel en est le coût et où se situent ses limites.

Deux références, une même tâche

  • Référence séquentielle CPU: une boucle appelle la fonction d'évaluation individu par individu ; chaque génération nécessite N ordonnancements indépendants, mises à jour d'état et agrégations de résultats. Le contrôle de boucle, le surcoût de l'interpréteur et les accès mémoire dispersés diluent la puissance de calcul utile ; plus le nombre d'individus augmente, plus ces coûts « non calculatoires » pèsent.
  • Implémentation tensorielle GPU de référence: EvoX organise la population, les entrées d'évaluation et l'état d'exécution sous forme de tenseurs, exécutant les évaluations et les opérateurs par lots sur le GPU ; un seul appel couvre l'ensemble du pool de candidats, réduisant considérablement les boucles séquentielles et le nombre d'ordonnancements.
Comparaison de l'efficacité de calcul : boucle séquentielle CPU et traitement par lots tensoriels GPUProtocole de mesure : problème, taille de population, générations et graine aléatoire fixes · préchauffage + synchronisation du périphérique avant chronométrageCPU séquentielTraitement par lots GPU1,000,750,500,250Temps par génération (valeur relative)Référence 1,0×Accélération ≈2,2×Accélération ≈4,5×Accélération ≈7,1×Boucle séquentielle CPULots GPU b=64Lots GPU b=256Lots GPU b=1024Gains : parallélisme par lots · opérateurs tensorisés · parallélisme intra-périphériqueContraintes : taille de lot · surcoût de copie et de lancement de noyauLorsque le lot est trop petit, la part des coûts fixes augmente et le facteur d'accélération se réduit ; vérifiez d'abord si la fonction d'évaluation peut être mise en lots, puis comparez les implémentations CPU et GPU.

Protocole de mesure : rendre la comparaison reproductible

Une comparaison reproductible doitfixer le problème, la taille de population, le nombre de générations et la graine aléatoire, puis enregistrer : le temps réel par génération, la durée totale, le débit (évaluations/seconde), le facteur d'accélération, ainsi que l'utilisation du GPU et l'occupation de la mémoire vidéo. Avant de chronométrer, il fautpréchaufferpour éliminer l'influence de la première compilation et de l'allocation mémoire, et effectuer aux points de mesure unesynchronisation du périphérique, en distinguant le temps de calcul du temps de transfert de données hôte-périphérique. Si l'un de ces éléments manque, le facteur d'accélération obtenu peut être faussé.

D'où vient la différence et par quoi est-elle contrainte

  • Source des gains: le parallélisme par lots, les opérateurs tensorisés et le parallélisme intra-périphérique permettent de traiter tout le pool de candidats en un seul appel et d'effectuer davantage d'évaluations par unité de temps.
  • Conditions contraignantes: la taille de lot, la dimension du problème, la vectorisabilité de la fonction d'évaluation, le surcoût de copie hôte-périphérique et le surcoût de lancement de noyau influencent tous l'accélération finale. Un lot trop petit voit ses gains absorbés par le surcoût de lancement ; si la fonction d'évaluation ne peut pas être vectorisée, le traitement par lots ne peut guère déployer ses effets.

Conclusion pratique

L'ordre correct est le suivant :vérifier d'abord si la fonction d'évaluation peut être mise en lots, puis comparer les implémentations CPU et GPU. L'avantage d'efficacité doit finalement se traduire par «obtenir davantage de générations ou de solutions candidates pour un même budget de calcul», et c'est sur cette base qu'il faut décider du mode de déploiement et de la conception des expériences, plutôt que de rechercher un simple chiffre d'accélération flatteur.