Pytorch un Pytorch/XLA veidošanas ātruma optimizēšana ietver vairākas stratēģijas:
Pytorch būvēšanas ātruma optimizēšana
1. Izmantojiet iepriekš izveidotus bināros bināros failus: tā vietā, lai būvētu no avota, izmantojiet iepriekš izveidotus bināros failus, kas pieejami Pytorch oficiālajā vietnē. Šie binārie faili ir optimizēti ar tādām bibliotēkām kā MKL un Magma, kas ir būtiska veiktspējai [5].
2. Optimizējiet būvēšanas procesu: ja jums jāveido no avota, izmantojiet tādus rīkus kā `ccache`, lai apkopotos failus kešatmiņā. Tas ievērojami samazina atjaunošanas laiku pēc nelielu koda izmaiņu veikšanas [7].
3. Paralēli kompilācija: izmantojiet vairāku kodolu procesorus, iestatot būvdarbu skaitu, lai tas atbilstu pieejamo CPU kodolu skaitam. To var izdarīt, izmantojot tādus karodziņus kā `-j` ar` izgatavošanas vai līdzīgu iespēju veidošanas sistēmā.
Pytorch/XLA veiktspējas optimizēšana
1. Izmantojiet slinku izpilde: Pytorch/XLA izmanto slinku tensora izpilde, kas pirms izpildes reģistrē operācijas diagrammā. Tas ļauj optimizēt, sapludinot vairākas operācijas vienā optimizētā darbībā [4] [6].
2. Iepriekš ielādējiet datus: izmantojiet `mpdeviceLoader`, lai iepriekš ielādētu datus XLA ierīcēs, samazinot komunikācijas virs galvas starp resursdatora CPU un ierīci [8].
3. Samaziniet CPU-Device sakaru: samaziniet vai noņemiet operācijas, kurām nepieciešama sinhronizācija starp CPU un XLA ierīci, piemēram, drukas paziņojumi vai reģistrēšanas atzvanīšana [8].
4. Izmantojiet barjeras optimizācijai: ievietojiet tādas barjeras kā `XMORKMARK_STEP ()`, lai sadalītu lielus aprēķinu grafikus mazākos, ļaujot XLA kompilatoram tos efektīvāk optimizēt [8].
5. Piesaistiet Cloud TPU: liela mēroga apmācībai izmantojiet mākoņu TPU ar pytorch/XLA, lai sasniegtu augstas veiktspējas un rentablu apmācību [2] [9].
Atsauces:[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-speed-ination-peed-peed/91057
[6] https://pytorch.org/xla/release/2.2/index.html
,
[8] https://pytorch.org/xla/master/learn/xla-overview.html
[9] https://cloud.google.com/blog/topics/developers-practitioners/scaling-deep-learning-workloads-pytorch-xla-and-cloud-tpu-vm