Optimalizace rychlosti sestavení pro Pytorch a Pytorch/XLA zahrnuje několik strategií:
Optimalizace rychlosti sestavení Pytorch
1. Použijte předem vytvořené binární soubory: Místo budování ze zdroje použijte předem vytvořené binární soubory dostupné z oficiálních webových stránek Pytorch. Tyto binární soubory jsou optimalizovány s knihovnami jako MKL a Magma, které jsou pro výkon zásadní [5].
2. Optimalizovat proces sestavení: Pokud musíte sestavit ze zdroje, použijte nástroje jako `ccache` k sestavování souborů mezipaměti. To významně zkracuje doby přestavby po provedení malých změn kódu [7].
3. Parallelize kompilace: Využijte vícejádrové procesory nastavením počtu sestavovacích úloh tak, aby odpovídaly počtu dostupných jádra CPU. To lze provést pomocí příznaků jako `-j` s` make` nebo podobnými možnostmi ve vašem systému sestavení.
Optimalizace výkonu Pytorch/XLA
1. Použijte líné provedení: Pytorch/XLA využívá provádění líného tenzoru, které zaznamenává operace v grafu před provedením. To umožňuje optimalizaci spojováním více operací do jediného optimalizovaného operace [4] [6].
2. Údaje o předběžném načtení: Použijte `mpdeviceLoader` k předběžnému načtení dat na zařízení XLA, čímž snižujte komunikační režii mezi hostitelským procesorem a zařízením [8].
3. Minimalizujte komunikaci s CPU-zařízením: Snižte nebo odstraňte operace, které vyžadují synchronizaci mezi zařízením CPU a XLA, jako jsou příkazy k tisku nebo zpětná zpětná volání [8].
4. Použijte bariéry pro optimalizaci: Vložte bariéry jako `xm.mark_step ()` pro rozdělení velkých výpočetních grafů na menší, což umožňuje kompilátoru XLA účinněji je optimalizovat [8].
5. pákový cloud TPU: Pro rozsáhlé školení využívejte cloudové TPU s Pytorch/XLA k dosažení vysoce výkonného a nákladově efektivního školení [2] [9].
Citace:[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-ffater.html
[4] https://pytorch.org/xla/release/r2.4/index.html
[5] https://discuss.pytorch.org/t/is-building-from-source-really-speed-if-inference-speed/91057
[6] https://pytorch.org/xla/release/2.2/index.html
[7] https://discuss.pytorch.org/t/any-tips-for-speeding-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-deep-learning-workloads-Pytorch-xla-and-cloud-tpu-vm