Optimizacija hitrosti izdelave za Pytorch in Pytorch/XLA vključuje več strategij:
Optimizacija hitrosti izdelave pytorcha
1. Uporabite vnaprej vgrajene binarne datoteke: Namesto da bi gradili iz vira, uporabite vnaprej vgrajene binarne binarne datoteke, ki so na voljo na uradni spletni strani Pytorcha. Te binarne datoteke so optimizirane s knjižnicami, kot sta MKL in Magma, ki sta ključnega pomena za uspešnost [5].
2. Optimizirajte postopek izdelave: Če morate graditi iz vira, uporabite orodja, kot je `ccache` za predpomnilne datoteke. To znatno zmanjša čas obnove po majhnih spremembah kode [7].
3. Vranilna kompilacija: Uporabite večjedrne procesorje tako, da nastavite število delovnih mest, da ustrezajo številu razpoložljivih jeder CPU. To lahko storite z uporabo zastav, kot so `-j` z` Make` ali podobnimi možnostmi v sistemu za gradnjo.
Optimizacija zmogljivosti Pytorch/XLA
1. Uporabite leno izvedbo: Pytorch/XLA uporablja leno tenzor, ki zabeleži operacije v grafu pred izvedbo. To omogoča optimizacijo z zlitjem več operacij v eno samo optimizirano operacijo [4] [6].
2. Podatki o prednastavitvi: Uporabite `mpdeviceloader` za predhodno nalaganje podatkov na naprave XLA, kar zmanjša komunikacijo med gostiteljskim procesorjem in napravo [8].
3. Zmanjšajte komunikacijo na področju naprave CPU-ja: Zmanjšajte ali odstranite operacije, ki zahtevajo sinhronizacijo med CPU in XLA napravo, na primer tiskane izjave ali povratne klice [8].
4. Uporabite ovire za optimizacijo: vstavite ovire, kot je `xm.mark_step ()`, da razbijete velike izračunane grafe v manjše, kar omogoča prevajalniku XLA, da jih učinkoviteje optimizira [8].
5. Vzpon v oblaku TPUS: Za obsežno usposabljanje uporabite Cloud TPU s Pytorchom/XLA, da dosežete visoko zmogljivo in stroškovno učinkovito usposabljanje [2] [9].
Navedbe:[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-pna-inference-peed/91057
[6] https://pytorch.org/xla/release/2.2/index.html
[7] https://discuss.pytorch.org/t/any-tips-for-peeding-the-source-build-process/184558
[8] https://pytorch.org/xla/master/learn/xla-overview.html
[9] https://cloud.google.com/blog/topics/developers-practions/scaling-deep-learning-workloads-pytorch-xla-in-Cloud-tpu-VM