Optimalizácia rýchlosti zostavenia pre Pytorch a Pytorch/XLA zahŕňa niekoľko stratégií:
Optimalizácia rýchlosti zostavenia Pytorch
1. Používajte vopred postavené binárne súbory: Namiesto budovania zo zdroja používajte vopred postavené binárne súbory dostupné na oficiálnej webovej stránke Pytorch. Tieto binárne súbory sú optimalizované s knižnicami ako MKL a Magma, ktoré sú rozhodujúce pre výkon [5].
2. Optimalizácia procesu zostavenia: Ak musíte zostaviť zo zdroja, použite nástroje ako `ccache` na kompilované súbory kompilované vyrovnávanie. To výrazne znižuje čas prestavby po vykonaní malých zmien v kóde [7].
3. Paralelizujte kompiláciu: Využívajte viacjadrové procesory nastavením počtu úloh zostavenia tak, aby zodpovedali počtu dostupných jadier CPU. To sa dá urobiť pomocou príznakov ako `-j` s` make` alebo podobnými možnosťami vo vašom systéme zostavenia.
Optimalizácia výkonu Pytorch/XLA
1. Používajte lenivé vykonávanie: Pytorch/XLA využíva lenivé vykonávanie Tensor, ktoré zaznamenáva operácie v grafe pred vykonaním. To umožňuje optimalizáciu spojením viacerých operácií do jednej optimalizovanej operácie [4] [6].
2. Predbežné údaje: Použite `MPDEVICELOADER` na predpätie údajov na zariadeniach XLA, čím sa znižuje režijné náklady na komunikáciu medzi hostiteľským procesorom a zariadením [8].
3. Minimalizujte komunikáciu s obdržaním CPU: Znížte alebo odstráňte operácie, ktoré vyžadujú synchronizáciu medzi zariadením CPU a XLA, ako sú príkazy tlače alebo spätné volania protokolovania [8].
4. Na optimalizáciu používajte bariéry: Vložte bariéry ako `xm.mark_step ()` na rozdelenie veľkých výpočtových grafov na menšie, čo umožňuje kompilátoru XLA ich efektívnejšie optimalizovať [8].
5. Pákový cloudový cloud TPU: Na rozsiahly tréning využívajte TPU Cloud s Pytorch/XLA na dosiahnutie vysokovýkonného a nákladovo efektívneho tréningu [2] [9].
Citácie:[1] https://www.reddit.com/r/machinearning/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-Speed-ped-ped-ped-peed/91057
[6] https://pytorch.org/xla/release/2.2/index.html
[7] https://discuss.pytorch.org/t/any-tips-for-speeding-p-t-source-build-process/184558
[8] https://pytorch.org/xla/master/learn/xla-cenview.html
[9] https://cloud.google.com/blog/topics/Developers-practitioners/scaling-deep-learning-workloads-pytorch-xla-and-clloud-tpu-vm