Interfejs torch.compile umożliwia przekazanie obliczeń modelu do mechanizmów optymalizacji i generowania kodu. W architekturze przedstawionej wraz z PyTorch 2.0 TorchDynamo wyodrębnia grafy obliczeń z programu Pythona, AOTAutograd przygotowuje obliczenia różniczkowania do kompilacji, a TorchInductor generuje kod dla wybranego środowiska wykonawczego. Kompilacja jest funkcją opcjonalną; uzyskiwane przyspieszenie zależy od modelu i sprzętu.
Obliczenia rozproszone
PyTorch udostępnia mechanizmy uczenia rozproszonego. W rozwiązaniu DistributedDataParallel poszczególne procesy wykorzystują lokalne kopie modelu. Gradienty są agregowane za pomocą operacji komunikacji zbiorowej, co pozwala aktualizować parametry poszczególnych kopii w sposób zgodny.
Przesyłanie gradientów może częściowo nakładać się w czasie na pozostałe obliczenia przebiegu wstecznego. Wydajność tej metody zależy między innymi od struktury modelu, ilości przesyłanych danych i możliwości komunikacyjnych infrastruktury.
Biblioteki powiązane i zastosowania
TorchVision udostępnia zbiory danych, architektury modeli, wytrenowane wagi i przekształcenia wykorzystywane w analizie obrazów.