Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Jak mohu optimalizovat rychlost sestavení pro Pytorch a Pytorch/XLA


Jak mohu optimalizovat rychlost sestavení pro Pytorch a Pytorch/XLA


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