A Pytorch és a Pytorch/XLA építési sebességének optimalizálása több stratégiát foglal magában:
A PyTorch Build sebességének optimalizálása
1. Használjon előre beépített bináris fájlokat: Ahelyett, hogy a forrásból épülne, használja a Pytorch hivatalos weboldalán elérhető előre gyártott bináris fájlokat. Ezeket a bináris fájlokat olyan könyvtárakkal optimalizálják, mint az MKL és a MAGMA, amelyek kulcsfontosságúak a teljesítmény szempontjából [5].
2. Optimalizálja az összeállítási folyamatot: Ha a forrásból kell építenie, használjon olyan eszközöket, mint a „CCACHE” a gyorsítótár -összeállított fájlokhoz. Ez jelentősen csökkenti az újjáépítési időket, miután a kódot kis változtatásokkal hajtotta végre [7].
3. Párhuzamosítsa a fordításokat: Használjon többmagos processzorokat úgy, hogy beállítja az építési feladatok számát, hogy megfeleljen a rendelkezésre álló CPU-magok számának. Ez megtehető olyan zászlókkal, mint a `-j`, a„ Make ”vagy hasonló lehetőségekkel az építési rendszerben.
A Pytorch/XLA teljesítmény optimalizálása
1. Használjon lusta végrehajtást: A Pytorch/XLA a lusta tenzor végrehajtását használja, amely a végrehajtás előtt rögzíti a grafikonon történő műveleteket. Ez lehetővé teszi az optimalizálást azáltal, hogy a több műveletet egyetlen optimalizált műveletbe történő beolvasztással [4] [6].
2. előzetes betöltési adatok: Használja a „MPDEVICeloader” adatot az XLA eszközökre, csökkentve a Host CPU és az eszköz közötti kommunikációt [8].
3. Minimalizálja a CPU-eszköz kommunikációját: Csökkentse vagy távolítsa el azokat a műveleteket, amelyek szinkronizálást igényelnek a CPU és az XLA eszköz, például nyomtatási utasítások vagy naplózási visszahívások között [8].
4. Használjon akadályokat az optimalizáláshoz: Helyezze be az olyan akadályokat, mint az `xm.Mark_step ()`, hogy a nagy számítási grafikonokat kisebbre bontsa, lehetővé téve az XLA fordító számára, hogy hatékonyabban optimalizálja őket [8].
5. Használja ki a Cloud TPU-t: A nagyméretű edzéshez a Cloud TPU-t használja a Pytorch/XLA-val a nagy teljesítmény és költséghatékony képzés elérése érdekében [2] [9].
Idézetek:[1] https://www.reddit.com/r/machinelearning/comments/kvs1ex/d_here_are_17_ways_OF_MAKE_PYTORCH_TRINING/
[2] https://www.youtube.com/watch?v=pspmrtwums8
[3] https://sebastianraschka.com/blog/2023/pytorch-afaster.html
[4] https://pytorch.org/xla/release/r2.4/index.html
[5] https://discuss.pytorch.org/t/is-building-from-source-really-speed-inference-peed/91057
[6] https://pytorch.org/xla/release/2.2/index.html
[7] https://discuss.pytorch.org/t/any-tips-for-sepeeding-phe-source-build-process/184558
[8] https://pytorch.org/xla/master/learn/xla-overview.html
[9] https://cloud.google.com/blog/topics/developers-practioners/caling-deep-learning-workloads-pytorch-xla-and-cloud-tpu-vm