Nowe generacje procesorów oferują znaczną poprawę wydajności w zakresie wnioskowania uczenia maszynowego (ML) dzięki wyspecjalizowanym wbudowanym instrukcjom. W połączeniu z ich elastycznością, dużą szybkością programowania i niskimi kosztami operacyjnymi, te procesory ogólnego przeznaczenia stanowią alternatywę dla innych istniejących rozwiązań sprzętowych.
AWS, Arm, Meta i inne pomogły zoptymalizować wydajność wnioskowania PyTorch 2.0 dla procesorów opartych na ARM. W rezultacie z przyjemnością ogłaszamy, że wydajność wnioskowania instancji oparta na AWS Graviton dla PyTorch 2.0 jest do 3.5 razy większa w przypadku Resnet50 w porównaniu z poprzednią wersją PyTorch (patrz poniższy wykres) i do 1.4 razy większa w przypadku BERT, dzięki czemu instancje oparte na Graviton są najszybszymi instancjami zoptymalizowanymi pod kątem obliczeń w AWS dla tych modeli.
AWS zmierzył do 50% oszczędności kosztów w przypadku wnioskowania PyTorch z instancjami Amazon Elastic Cloud Compute C3g opartymi na AWS Graviton7 w Torch Hub Resnet50 i wieloma modelami Hugging Face w porównaniu z porównywalnymi instancjami EC2, jak pokazano na poniższym rysunku.
Dodatkowo zmniejsza się również opóźnienie wnioskowania, jak pokazano na poniższym rysunku.
Na przykład zaobserwowaliśmy podobny trend w zakresie przewagi cenowo-wydajnej w przypadku innych obciążeń w Gravitonie kodowanie wideo za pomocą FFmpeg.
Szczegóły optymalizacji
Optymalizacje skupiały się na trzech kluczowych obszarach:
- Jądra GEMM – PyTorch obsługuje jądra GEMM Arm Compute Library (ACL) za pośrednictwem zaplecza OneDNN (wcześniej zwanego MKL-DNN) dla procesorów opartych na ARM. Biblioteka ACL zapewnia zoptymalizowane jądra GEMM Neon i SVE zarówno dla formatów fp32, jak i bfloat16. Jądra te poprawiają wykorzystanie sprzętu SIMD i zmniejszają opóźnienia w wnioskowaniu od końca do końca.
- obsługa bfloat16 – Obsługa bfloat16 w Graviton3 pozwala na efektywne wdrażanie modeli wyszkolonych przy użyciu bfloat16, fp32 i AMP (Automatic Mixed Precision). Standardowe modele fp32 wykorzystują jądra bfloat16 poprzez szybki tryb matematyczny OneDNN, bez kwantyzacji modelu, zapewniając do dwóch razy większą wydajność w porównaniu z istniejącym wnioskowaniem modelu fp32 bez obsługi szybkiej matematyki bfloat16.
- Pierwotne buforowanie – Wdrożyliśmy także prymitywne buforowanie dla operatorów conv, matmul i produktów wewnętrznych, aby uniknąć zbędnej inicjalizacji jądra GEMM i narzutu na alokację tensora.
Jak skorzystać z optymalizacji
Najprostszym sposobem na rozpoczęcie jest użycie Kontenery AWS Deep Learning (DLC) włączone Elastyczna chmura obliczeniowa Amazon (Amazonka EC2) Instancje C7g or Amazon Sage Maker. DLC są dostępne na Rejestr elastycznego pojemnika Amazon (Amazon ECR) dla Grawiton AWS or x86. Aby uzyskać więcej informacji na temat SageMaker, zobacz Uruchamiaj obciążenia wnioskowania uczenia maszynowego w instancjach opartych na AWS Graviton za pomocą Amazon SageMaker i Amazon SageMaker dodaje osiem nowych instancji opartych na Graviton do wdrażania modeli.
Użyj DLC AWS
Aby skorzystać z DLC AWS, użyj następującego kodu:
Jeśli wolisz zainstalować PyTorch przez pip, zainstaluj koło PyTorch 2.0 z oficjalnego repozytorium. W takim przypadku będziesz musiał ustawić dwie zmienne środowiskowe, jak wyjaśniono w poniższym kodzie, przed uruchomieniem PyTorch, aby aktywować optymalizację Graviton.
Użyj koła Pythona
Aby skorzystać z koła Pythona, zapoznaj się z następującym kodem:
Uruchom wnioskowanie
Możesz użyć PyTorcha Ławka z pochodnią aby zmierzyć poprawę wydajności wnioskowania procesora lub porównać różne typy instancji:
Benchmarking
Możesz użyć Polecający wnioskowanie Amazon SageMaker narzędzie do automatyzacji testów porównawczych wydajności w różnych instancjach. Za pomocą narzędzia doradczego wnioskowania można znaleźć punkt końcowy wnioskowania w czasie rzeczywistym, który zapewnia najlepszą wydajność przy najniższych kosztach dla danego modelu uczenia maszynowego. Zebraliśmy poprzednie dane przy użyciu notesów doradczych wnioskowania, wdrażając modele w produkcyjnych punktach końcowych. Więcej informacji na temat narzędzia doradczego wnioskowania można znaleźć w artykule GitHub repo. W tym poście porównaliśmy następujące modele: Klasyfikacja obrazu ResNet50, Analiza nastrojów DistilBERT, Maska wypełniająca RoBERTa, Analiza nastrojów RoBERTa.
Wnioski
AWS zmierzył do 50% oszczędności kosztów w przypadku wnioskowania PyTorch z instancjami Amazon Elastic Cloud Compute C3g opartymi na AWS Graviton7 w Torch Hub Resnet50 i wieloma modelami Hugging Face w porównaniu z porównywalnymi instancjami EC2. Te instancje są dostępne w SageMaker i Amazon EC2. The Przewodnik techniczny AWS Graviton zawiera listę zoptymalizowanych bibliotek i najlepszych praktyk, które pomogą Ci osiągnąć korzyści kosztowe dzięki instancjom Graviton przy różnych obciążeniach.
Jeśli znajdziesz przypadki użycia, w których nie zaobserwowano podobnego wzrostu wydajności w AWS Graviton, otwórz problem na stronie Przewodnik techniczny AWS Graviton aby nas o tym poinformować. Będziemy nadal dodawać kolejne ulepszenia wydajności, aby uczynić Graviton najbardziej opłacalnym i wydajnym procesorem ogólnego przeznaczenia do wnioskowania przy użyciu PyTorch.
O autorze
Sunita Nadampalli jest kierownikiem ds. rozwoju oprogramowania w AWS. Prowadzi optymalizacje wydajności oprogramowania Graviton pod kątem obciążeń maszynowych, HPC i multimedialnych. Pasjonuje się rozwojem oprogramowania typu open source i dostarczaniem opłacalnych rozwiązań programowych z układami Arm SoC.
- Dystrybucja treści i PR oparta na SEO. Uzyskaj wzmocnienie już dziś.
- PlatoAiStream. Analiza danych Web3. Wiedza wzmocniona. Dostęp tutaj.
- Wybijanie przyszłości w Adryenn Ashley. Dostęp tutaj.
- Kupuj i sprzedawaj akcje spółek PRE-IPO z PREIPO®. Dostęp tutaj.
- Źródło: https://aws.amazon.com/blogs/machine-learning/optimized-pytorch-2-0-inference-with-aws-graviton-processors/
- :Jest
- :Gdzie
- $W GÓRĘ
- 1
- 10
- 100
- 11
- 7
- 98
- a
- O nas
- o tym
- precyzja
- Osiągać
- w poprzek
- Dodaj
- Dodaje
- Korzyść
- przydział
- pozwala
- również
- alternatywny
- Amazonka
- Amazon EC2
- amp
- an
- i
- Ogłosić
- SĄ
- obszary
- ARM
- AS
- At
- zautomatyzować
- automatycznie
- dostępny
- uniknąć
- AWS
- Backend
- zanim
- poniżej
- Benchmark
- testowany
- Benchmarkingu
- Korzyści
- BEST
- Najlepsze praktyki
- obie
- wbudowany
- by
- nazywa
- CAN
- walizka
- Etui
- CD
- Chmura
- kod
- COM
- połączony
- porównywalny
- porównać
- w porównaniu
- ukończenia
- obliczać
- Pojemnik
- kontynuować
- Koszty:
- oszczędności
- opłacalne
- dane
- głęboko
- głęboka nauka
- zachwycony
- dostarczanie
- dostarcza
- zależny
- wdrażanie
- Wdrożenie
- detale
- oprogramowania
- różne
- Doker
- pobieranie
- z powodu
- wydajny
- koniec końców
- Punkt końcowy
- Środowisko
- przykład
- Przede wszystkim system został opracowany
- wyjaśnione
- eksport
- rozszerzenia
- Twarz
- FAST
- szybciej
- najszybszy
- Postać
- wypełniać
- Znajdź
- Elastyczność
- koncentruje
- następujący
- W razie zamówieenia projektu
- od
- Zyski
- ogólny cel
- Pokoleń
- otrzymać
- git
- dany
- wykres
- sprzęt komputerowy
- Have
- pomoc
- pomógł
- Wysoki
- HPC
- HTML
- http
- HTTPS
- Piasta
- obraz
- realizowane
- podnieść
- poprawa
- ulepszenia
- in
- zainstalować
- przykład
- instrukcje
- problem
- IT
- JIT
- jpg
- Klawisz
- Kluczowe obszary
- Wiedzieć
- Utajenie
- firmy
- wodowanie
- Wyprowadzenia
- nauka
- niech
- biblioteki
- Biblioteka
- Lista
- Zaloguj Się
- niski
- najniższy
- maszyna
- uczenie maszynowe
- robić
- Dokonywanie
- kierownik
- matematyka
- zmierzyć
- wzmiankowany
- Meta
- mieszany
- ML
- Moda
- model
- modele
- jeszcze
- większość
- multimedialny
- wielokrotność
- Neon
- Nowości
- of
- oferta
- urzędnik
- on
- koncepcja
- open source
- operacyjny
- operatorzy
- optymalizacja
- Optymalizacja
- zoptymalizowane
- or
- Inne
- Pozostałe
- namiętny
- jest gwarancją najlepszej jakości, które mogą dostarczyć Ci Twoje monitory,
- plato
- Analiza danych Platona
- PlatoDane
- Proszę
- Post
- praktyki
- Detaliczność
- woleć
- poprzedni
- poprzednio
- prymitywny
- wydruki
- Procesor
- Procesory
- Produkt
- Produkcja
- zapewnia
- że
- Python
- płomień
- w czasie rzeczywistym
- zmniejszyć
- Zredukowany
- zwolnić
- dalsze
- Efekt
- run
- sagemaker
- Wnioskowanie SageMakera
- Oszczędności
- widzieć
- widziany
- sentyment
- zestaw
- ustawienie
- ona
- pokazane
- znaczący
- podobny
- Tworzenie
- rozwoju oprogramowania
- Rozwiązania
- wyspecjalizowanym
- prędkość
- standard
- rozpoczęty
- udany
- wsparcie
- podpory
- Brać
- Techniczny
- że
- Połączenia
- ich
- Te
- to
- trzy
- czasy
- do
- pochodnia
- Pochodnia
- przeszkolony
- Trend
- SKRĘCAĆ
- drugiej
- typy
- Aktualizacja
- uaktualnienie
- us
- posługiwać się
- za pomocą
- użyteczność
- wersja
- przez
- Droga..
- we
- Koło
- będzie
- w
- bez
- You
- zefirnet