Depuis la sortie de PyTorch 2.0, les gains en performance d'exécution des modèles se heurtent à des temps de compilation initiaux très longs, pouvant atteindre une heure ou plus pour les grands modèles de recommandation de Meta. Cet article détaille une initiative menée fin 2024 pour analyser et réduire ces temps de compilation, en se concentrant sur des modèles complexes au-delà des architectures Transformers. L'analyse a été effectuée à l'aide de Tlparse, un outil qui parse les logs de trace de PyTorch pour identifier les goulots d'étranglement dans les différentes étapes de compilation, notamment Dynamo, AOTInductor et TorchInductor. Les résultats ont montré que la majorité du temps de compilation était consacrée à TorchInductor, en particulier lors des phases de compilation asynchrone et d'auto-optimisation avec Triton. Plusieurs axes d'optimisation ont été identifiés, tels que la maximisation du parallélisme avec Triton, l'optimisation des configurations d'auto-optimisation, et l'amélioration des performances du cache de PyTorch 2.0. Ces optimisations ont permis de réduire significativement les temps de compilation, notamment en évitant les compilations redondantes et en améliorant l'efficacité des processus de compilation parallèles. Les techniques développées en collaboration avec plusieurs équipes de Meta ont été appliquées avec succès à un modèle de fondation, démontrant des gains substantiels en termes de temps de compilation et d'efficacité globale.
Réduction du temps de compilation de PyTorch 2.0 pour les charges de travail internes de Meta
Points clés
- PyTorch 2.0 offre des gains de performance mais avec des temps de compilation initiaux élevés.
- Tlparse est utilisé pour analyser les logs de compilation et identifier les goulots d'étranglement.
- Les optimisations ciblent TorchInductor et Triton pour réduire les temps de compilation.
- Les techniques de parallélisation et d'optimisation du cache améliorent l'efficacité globale.
- Les résultats montrent des réductions significatives des temps de compilation pour les grands modèles.
Pourquoi c'est important
La réduction des temps de compilation de PyTorch 2.0 est cruciale pour améliorer l'efficacité des grands modèles d'IA, en particulier dans des environnements industriels où les temps d'attente peuvent impacter la productivité et les coûts opérationnels. Les optimisations proposées offrent des gains significatifs pour les charges de travail internes de Meta et pourraient bénéficier à la communauté plus large des utilisateurs de PyTorch.
Article original : https://pytorch.org/blog/experience-in-reducing-pt2-compilation-time-for-meta-internal-workloads/
Synthèse éditoriale issue d’une veille et d’outils d’IA. Des erreurs ou approximations peuvent subsister. Référez‑vous à la source originale et à notre disclaimer.