Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Jak mogę zoptymalizować prędkość kompilacji dla Pytorch i Pytorch/XLA


Jak mogę zoptymalizować prędkość kompilacji dla Pytorch i Pytorch/XLA


Optymalizacja prędkości kompilacji dla Pytorcha i Pytorch/XLA obejmuje kilka strategii:

Optymalizacja prędkości kompilacji Pytorch

1. Użyj wstępnie zbudowanych plików binarnych: Zamiast budować ze źródła, użyj wstępnie zbudowanych binarów dostępnych na oficjalnej stronie Pytorch. Te binaria są zoptymalizowane z bibliotekami takimi jak MKL i Magma, które są kluczowe dla wydajności [5].

2. Optymalizuj proces kompilacji: Jeśli musisz budować ze źródła, użyj narzędzi takich jak „ccache` do plików skompilowanych pamięci podręcznej. To znacznie zmniejsza czas przebudowy po wprowadzeniu niewielkich zmian w kodzie [7].

3. Kompilacja równoległości: Użyj wielordzeniowych procesorów, ustawiając liczbę zadań kompilacji, aby pasować do liczby dostępnych rdzeni procesora. Można to zrobić za pomocą flag takich jak `-J` z„ Make ”lub podobnymi opcjami w systemie kompilacji.

Optymalizacja wydajności Pytorch/XLA

1. Użyj leniwego wykonania: Pytorch/XLA wykorzystuje wykonywanie Lazy Tensor, które rejestruje operacje na wykresie przed wykonaniem. Umożliwia to optymalizację poprzez łączenie wielu operacji w jedną zoptymalizowaną operację [4] [6].

2. Dane dotyczące ładowania wstępnego: Użyj `mpdeviceloader` do wstępnego ładowania danych na urządzeniach XLA, zmniejszając obciążenie komunikacyjne między procesorem hosta a urządzeniem [8].

3. Minimalizuj komunikację z urządzeniami do urządzenia procesowego: zmniejsz lub usuń operacje wymagające synchronizacji między urządzeniem CPU i XLA, takim jak instrukcje drukowania lub rejestrowanie zwrotów [8].

4. Użyj barier do optymalizacji: wstaw bariery takie jak `xmark_step ()`, aby podzielić duże wykresy obliczeniowe na mniejsze, umożliwiając kompilator XLA na bardziej efektywną ich optymalizację [8].

5. TPU w chmurze dźwigni: W przypadku szkolenia na dużą skalę wykorzystaj chmurę TPU z Pytorch/XLA, aby uzyskać wysokowydajny i opłacalny trening [2] [9].

Cytaty:
[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-pinference-speed/91057
[6] https://pytorch.org/xla/release/2.2/index.html
[7] https://discuss.pytorch.org/t/any-tips-for-speeding-p-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-pitorch-xla-andbloud-tpu-vm