Оптимізація швидкості збірки для Pytorch та Pytorch/XLA включає кілька стратегій:
Оптимізація швидкості збірки Pytorch
1. Використовуйте попередньо вбудовані бінарні файли: замість того, щоб будувати з джерела, використовуйте попередньо вбудовані бінарні файли, доступні на офіційному веб-сайті Pytorch. Ці бінарні файли оптимізовані за допомогою таких бібліотек, як MKL та Magma, які мають вирішальне значення для продуктивності [5].
2. Оптимізуйте процес збірки: Якщо вам потрібно створити з джерела, використовуйте такі інструменти, як `ccache` для кешу складених файлів. Це значно скорочує час відновлення після внесення невеликих змін у коді [7].
3. Паралелізована компіляція: Використовуйте багатоядерні процесори, встановивши кількість завдань збірки, щоб відповідати кількості доступних ядер процесора. Це можна зробити за допомогою таких прапорів, як `-j` з` make` або подібними варіантами у вашій системі збірки.
Оптимізація продуктивності Pytorch/XLA
1. Використовуйте ліниву виконання: Pytorch/XLA використовує ліниву виконання тензора, яка записує операції на графіку перед виконанням. Це дозволяє оптимізувати шляхом сплавлення декількох операцій в єдину оптимізовану операцію [4] [6].
2. Попередні дані: Використовуйте `mpdeviceloader` для попереднього завантаження даних на пристрої XLA, зменшуючи накладні витрати між хостовим процесором та пристроєм [8].
3. Мінімізуйте зв'язок із процесором: зменшити або видаляти операції, які потребують синхронізації між пристроєм процесора та XLA, такими як оператори друку або реєстрація зворотних дзвінків [8].
4. Використовуйте бар'єри для оптимізації: вставте бар'єри, такі як `xm.mark_step ()`, щоб розбити великі графіки обчислень на менші, що дозволяє компілятору XLA оптимізувати їх ефективніше [8].
5. Важити хмарні TPU: для масштабних тренувань використовуйте хмарні ТПУ з Pytorch/XLA для досягнення високоефективних та економічно ефективних тренувань [2] [9].
Цитати:[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-inference-peed/91057
[6] https://pytorch.org/xla/release/2.2/index.html
[7] https://discuss.pytorch.org/t/any-tips-forpedingup-the-source-build-process/184558
[8] https://pytorch.org/xla/master/learn/xla-overview.html
[9] https://cloud.google.com/blog/topics/developers-practiters/scaling-deep-learning-workloads-pytorch-xla-and-cloud-tpu-vm