Sprzęt, który dziś pisze zdania i rozpoznaje guzy, zawdzięcza część swojej kariery starszemu problemowi: renderowaniu ogromnej liczby pikseli, zanim gracz zauważy, że sceneria pojawiła się z opóźnieniem.
Procesory graficzne stały się centralnym elementem współczesnej sztucznej inteligencji, ponieważ sieci neuronowe wykonują ogromne ilości pracy matematycznej, którą można podzielić i przeprowadzać równolegle. Grafika wymagała tych samych ogólnych zdolności. Oprogramowanie przekształciło następnie wyspecjalizowany procesor obrazu w programowalny silnik do obsługi macierzy, modeli i danych.
Najpierw pojawiły się piksele
Współczesna gra wielokrotnie przetwarza geometrię, tekstury, oświetlenie, kolory i cienie dla milionów pikseli. Dużą część tej pracy można podzielić na wiele podobnych obliczeń. Zamiast prosić jednego niezwykle wydajnego pracownika o malowanie ekranu od lewej do prawej, sprzęt graficzny organizuje ogromny warsztat i jednocześnie zajmuje pracą wielu mniejszych pracowników.
Procesor centralny jest zaprojektowany inaczej. Jego mniejsza liczba wydajnych i elastycznych rdzeni obsługuje zadania systemu operacyjnego, logikę aplikacji, decyzje rozgałęziające oraz zadania, w których kolejny krok zależy od wyniku poprzedniego. Żadna z tych architektur nie jest uniwersalnie lepsza. Zarówno sala sądowa, jak i fabryka ciastek zatrudniają ludzi, ale nie oznacza to, że korzystają z tego samego planu zatrudnienia.
Potem piksele stały się tensorami
Sieci neuronowe wielokrotnie łączą duże tablice liczb, stosują operacje i przekazują wyniki przez wiele warstw. Trenowanie dostosowuje model, a wnioskowanie go wykorzystuje. Praca leżąca u podstaw tych procesów może być niezwykle zaawansowana, jednak znaczną część ciężkich obliczeń nadal można podzielić między procesor równoległy.
Procesor centralny może wykonywać te obliczenia. Przewaga procesora graficznego pojawia się wtedy, gdy zadanie zawiera wystarczająco dużo odpowiedniej pracy, aby zająć jego zasoby równoległe. Na tym polega związek:
- grafika obejmuje powiązane obliczenia rozłożone między piksele, geometrię i próbki;
- sztuczna inteligencja obejmuje powiązane obliczenia rozłożone między wagi modelu, aktywacje i dane;
- procesor graficzny jest zbudowany tak, aby przepuszczać przez maszynę duże, równoległe obciążenie.
Zmiana kariery dokonała się w czterech aktach
- Stały sprzęt graficzny: wczesne procesory graficzne przyspieszały wyspecjalizowaną pracę potrzebną do renderowania obrazów i scen 3D.
- Programowalne shadery i obliczenia ogólnego przeznaczenia: sprzęt stał się wystarczająco elastyczny, aby programiści mogli opisywać szerszy zakres problemów równoległych.
- Praktyczne platformy programistyczne: systemy takie jak CUDA i ROCm dostarczyły modele programowania, kompilatory, biblioteki i narzędzia.
- Głębokie uczenie na dużą skalę: badania, w tym AlexNet z 2012 roku, pokazały, jak obliczenia na GPU mogą uczynić trenowanie dużej sieci do rozpoznawania obrazów praktycznym.
W ten sposób pętla zaczęła się wzmacniać. Coraz więcej badaczy korzystało z obliczeń na GPU, oprogramowanie się rozwijało, projektanci układów dodawali funkcje do operacji uczenia maszynowego, większe obciążenia stawały się praktyczne, a popyt finansował kolejną generację sprzętu.
Oprogramowanie sprawiło, że szybki układ stał się użyteczny
Surowa arytmetyka równoległa nie jest użytecznym ekosystemem. Programiści potrzebują kompilatorów, środowisk uruchomieniowych, profilerów i przyspieszonych bibliotek, a badacze - frameworków, które pozwalają opisywać model bez ręcznego pisania każdej niskopoziomowej operacji.
Przewodnik programowania CUDA firmy NVIDIA opisuje jej model programowania i platformę wykonywania. Dokumentacja ROCm firmy AMD obejmuje odpowiadający jej otwarty stos oprogramowania dla obsługiwanego sprzętu AMD. Obsługa frameworków wyjaśnia, dlaczego dwa teoretycznie wydajne procesory graficzne mogą mieć zupełnie inną praktyczną wartość dla jednej aplikacji.
VRAM to pomieszczenie, w którym odbywa się praca
Model i jego tymczasowe dane robocze muszą zmieścić się w dostępnej pamięci. W zależności od zadania obejmuje to wagi, prompty, obrazy, partie danych i wyniki pośrednie. Procesor graficzny może być teoretycznie wystarczająco szybki, a mimo to nie uruchomić obciążenia, ponieważ nie ma gdzie go umieścić.
Tworzy to osobliwość na rynku używanego sprzętu: starsza karta profesjonalna z większą ilością pamięci może pozostać przydatna dla modelu, który nie zmieści się na nowszej i szybszej karcie gamingowej. Odwrotna sytuacja również jest możliwa. Jeśli używane oprogramowanie potrzebuje niewiele pamięci i korzysta z nowszych funkcji obliczeniowych, kupowanie pojemności, której nigdy nie wykorzysta, to kosztowny sposób na podziwianie specyfikacji.
Przepustowość pamięci również ma znaczenie. Tysiące równoległych pracowników nie są produktywne, gdy dane docierają do nich przez otwór na listy.
Czy każde zadanie związane ze sztuczną inteligencją wymaga procesora graficznego?
Nie. Małe modele mogą działać na procesorach centralnych. Telefony i nowsze komputery coraz częściej mają jednostki NPU zaprojektowane do wydajnego wykonywania obsługiwanych operacji neuronowych. Duzi operatorzy budują także akceleratory przeznaczone do konkretnych celów, takie jak Tensor Processing Units firmy Google.
Procesor graficzny pozostaje ważny, ponieważ łączy wysoką wydajność równoległą, programowalność, lokalną pamięć i dojrzałe narzędzia. To połączenie pasuje do wielu zadań, ale nie czyni go właściwą odpowiedzią na każde zadanie zawierające litery A i I.
Gamingowy procesor graficzny może obsługiwać sztuczną inteligencję - jeśli oprogramowanie się zgadza
Odpowiednie karty gamingowe mogą lokalnie obsługiwać generowanie obrazów, transkrypcję, skalowanie obrazu i mniejsze modele językowe. Sprawdź konkretną aplikację, zamiast ufać ogólnemu hasłu „gotowe na sztuczną inteligencję”:
- Czy procesor graficzny i system operacyjny są obsługiwane?
- Ile pamięci VRAM potrzebują wybrany model i partia danych?
- Jakie formaty liczbowe i ścieżki akceleracji są dostępne?
- Czy zasilacz, obudowa i chłodzenie obsłużą tę kartę?
- Czy oczekiwana szybkość rzeczywiście uzasadnia zakup sprzętu?
Praktyczny przykład: transkrypcja wywiadu
Załóżmy, że chcesz zamienić nagrania na tekst bez ich przesyłania. Wybierasz aplikację do transkrypcji, rozmiar modelu, akceptowalną dokładność i czas realizacji - nie po prostu „kartę graficzną do sztucznej inteligencji”. Repozytorium Whisper podaje przybliżone wymagania pamięci dla swoich rozmiarów modeli. Są one punktem wyjścia dla tej implementacji, a nie uniwersalną obietnicą dotyczącą każdej aplikacji na niej opartej.
Większy model może potrzebować więcej pamięci. Mniejszy może już kończyć pracę z wystarczającą dokładnością. Jeśli procesor centralny obsłuży okazjonalne nagranie, zanim będzie Ci potrzebne, nowy procesor graficzny rozwiązałby problem harmonogramu, który nie istnieje.
Przydatny historyczny przypadek
Wczesny sprzęt graficzny nie został zaprojektowany z myślą o współczesnych modelach językowych. Stał się użyteczny, ponieważ architektura stworzona do renderowania pikseli pasowała również do dużej części matematyki równoległej stojącej za sieciami neuronowymi. Programowalne oprogramowanie udostępniło ten przypadkowy zbieg przydatności naukowcom i programistom, a dziesięciolecia zapotrzebowania na grafikę nieustannie ulepszały tę technologię.
Procesory graficzne nie napędziły boomu na sztuczną inteligencję wyłącznie dlatego, że były szybkie. Były równoległe, programowalne i otoczone oprogramowaniem zdolnym przekształcić tę strukturę w użyteczną pracę.
Zobacz procesory graficzne do sztucznej inteligencji i uczenia maszynowego, które obsługuje GPUsed, przeczytaj, do czego służy NPU, lub porównaj pojemność VRAM i jej ograniczenia. Jeśli chodzi o zakup, zacznij od obciążenia, a nie od największej nazwy modelu.