Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Comment puis-je optimiser la vitesse de construction pour Pytorch et Pytorch / XLA


Comment puis-je optimiser la vitesse de construction pour Pytorch et Pytorch / XLA


L'optimisation de la vitesse de construction de Pytorch et Pytorch / XLA implique plusieurs stratégies:

Optimisation de la vitesse de construction pytorch

1. Utilisez des binaires prédéfinis: Au lieu de construire à partir de Source, utilisez des binaires prédéfinis disponibles sur le site officiel de Pytorch. Ces binaires sont optimisés avec des bibliothèques comme MKL et Magma, qui sont cruciales pour les performances [5].

2. Optimiser le processus de construction: si vous devez construire à partir de la source, utilisez des outils comme «CCACH» pour mettre en cache des fichiers compilés. Cela réduit considérablement les temps de reconstruction après avoir apporté de petites modifications au code [7].

3. Paralléliser la compilation: utilisez des processeurs multi-core en définissant le nombre de travaux de construction pour correspondre au nombre de cœurs CPU disponibles. Cela peut être fait à l'aide de drapeaux comme `-J` avec des options« make »ou similaires dans votre système de construction.

Optimisation des performances Pytorch / XLA

1. Utiliser l'exécution paresseuse: Pytorch / xla utilise l'exécution du tenseur paresseux, qui enregistre les opérations dans un graphique avant l'exécution. Cela permet l'optimisation en fusionnant plusieurs opérations en une seule opération optimisée [4] [6].

2. Données de précharge: utilisez «MPDeviceLoader» pour précharger les données sur les appareils XLA, en réduisant les frais généraux de communication entre le processeur hôte et le périphérique [8].

3. Minimiser la communication CPU-Apparement: Réduisez ou supprimez les opérations qui nécessitent une synchronisation entre le périphérique CPU et XLA, telles que les instructions d'impression ou les rappels de journalisation [8].

4. Utilisez des barrières à l'optimisation: insérez des barrières comme `xm.mark_step ()` pour diviser les graphiques de calcul de grands calculs en plus petits, permettant au compilateur XLA de les optimiser plus efficacement [8].

5. Tire les TPU cloud: pour une formation à grande échelle, utilisez des TPU cloud avec Pytorch / XLA pour obtenir une formation haute performance et rentable [2] [9].

Citations:
[1] https://www.reddit.com/r/machinelearning/comments/kvs1ex/d_here_are_17_ways_of_making_pytorch_training/
[2] https://www.youtube.com/watch?v=pspmrtwums8
[3] https://sebastianraschka.com/blog/2023/pytorch-faster.html
[4] https://pytorch.org/xla/release/r2.4/index.html
[5] https://discuss.pytorch.org/t/is-building-from-source-really-espeed-up-inference-Speed/91057
[6] https://pytorch.org/xla/release/2.2/index.html
[7] https://discuss.pytorch.org/t/any-tips-for-peeding-up-the-source-build-process/184558
[8] https://pytorch.org/xla/master/learn/xla-verview.html
[9] https://cloud.google.com/blog/topics/developers-practitions/scaling-deep-learning-workloads-pytorch-xla-and-cloud-tpu-vm