Die Optimierung der Build -Geschwindigkeit für Pytorch und Pytorch/XLA beinhaltet mehrere Strategien:
Optimierung der Pytorch -Build -Geschwindigkeit
1. Verwenden Sie vorgefertigte Binärdateien: Verwenden Sie anstatt aus der Quelle aus den vorgefertigten Binärdateien auf der offiziellen Website von Pytorch zu. Diese Binärdateien sind mit Bibliotheken wie MKL und Magma optimiert, die für die Leistung von entscheidender Bedeutung sind [5].
2. Optimieren Sie den Build -Prozess: Wenn Sie aus der Quelle erstellen müssen, verwenden Sie Tools wie `ccache`, um kompilierte Dateien zu cache. Dies reduziert die Wiederaufbauzeiten erheblich, nachdem kleine Änderungen am Code vorgenommen wurden [7].
3.. Parallele Kompilierung: Verwenden Sie Multi-Core-Prozessoren, indem Sie die Anzahl der Build-Jobs festlegen, die der Anzahl der verfügbaren CPU-Kerne entsprechen. Dies kann mit Flags wie `-j` mit` make` oder ähnlichen Optionen in Ihrem Build-System erfolgen.
Optimierung der Pytorch/XLA -Leistung
1. Verwenden Sie Lazy Execution: Pytorch/XLA verwendet eine faule Tensorausführung, die Vorgänge vor der Ausführung in einem Diagramm aufzeichnet. Dies ermöglicht eine Optimierung, indem mehrere Operationen in einen einzelnen optimierten Betrieb verschmolzen [4] [6].
2. Daten vorladen: Verwenden Sie "MPDeviceloader", um Daten auf XLA -Geräte vorzuladen, wodurch der Kommunikationsaufwand zwischen der Host -CPU und dem Gerät reduziert wird [8].
3.. Minimieren Sie die CPU-Gerätskommunikation: Reduzieren oder entfernen Sie Vorgänge, die eine Synchronisation zwischen dem CPU- und XLA-Gerät erfordern, z. B. Druckanweisungen oder Protokollierungsrückrufe [8].
4. Verwenden Sie Hindernisse für die Optimierung: Fügen Sie Barrieren wie `xm.mark_step () ein, um große Berechnungsdiagramme in kleinere zu unterteilen, sodass der XLA -Compiler sie effektiver optimieren kann [8].
5. Nutzen Sie Cloud-TPUs: Verwenden Sie für groß angelegte Schulungen Cloud-TPUs mit Pytorch/XLA, um Hochleistungs- und kostengünstige Schulungen zu erreichen [2] [9].
Zitate:[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-reallyspeed-up-inferencespeed/91057
[6] https://pytorch.org/xla/release/2.2/index.html
[7] https://discuss.pytorch.org/t/any-tip-forspeeding-up-the-source-build-process/184558
[8] https://pytorch.org/xla/master/learn/xla-overview.html
[9] https://cloud.google.com/blog/topics/developers-practitioners/scaling-teep-learning-workloads-pytorch-xla-and-cloud-tpu-vm