Różnica między GPU i FPGA
- 5041
- 845
- Hilarion Porębski
Szybkie postępy w technologii VLSI w ciągu ostatnich kilku dziesięcioleci umożliwiły wytwarzanie miliardów tranzystorów na jednym chipie. Ten postęp technologiczny doprowadził do zaprojektowania i rozwoju znacznie szybszego i energooszczędnego sprzętu. Szybko rosnące szybkości zegara i wyższe przepustowości pamięci spowodowały lepszą wydajność. A poprawa jednordzeniowej wydajności procesorów ogólnego celu zmniejszyła się ze względu na zmniejszenie tempa wzrostu częstotliwości roboczych. Dwa główne przyczyny tego jest rosnąca luka między prędkością procesora i pamięci oraz ograniczenia zasilania. Aby rozwiązać te problemy, przemysł mikroprocesorowy przeszedł na wielordzeniowe procesory. Inne realne alternatywy pojawiły się na zdjęciu oprócz procesorów wielordzeniowych w celu przezwyciężenia takich wąskich gardeł, w tym specjalnie zaprojektowane ICS i przeprogramowalne FPGA i GPUS. Więc co wolisz od wymagań obliczeniowych - GPU lub FPGA?
Co to jest GPU?
Jednostka przetwarzania grafiki (GPU), bardziej znana jako karta graficzna lub karta graficzna, jest procesorem graficznym do obsługi informacji graficznej do wyświetlania na wyświetlaczu. GPU to wyspecjalizowany procesor początkowo zaprojektowany w celu zaspokojenia potrzeby przyspieszania grafiki, głównie do zwiększenia wydajności graficznej gier na komputerze. W rzeczywistości większość procesorów graficznych konsumenckich jest poświęcona osiągnięciu doskonałych wydajności grafiki i wizualizacji, aby umożliwić rozgrywkę podobną do życia. Ale dzisiejsze GPU to znacznie więcej niż komputery osobiste, w których po raz pierwszy się pojawiły.
Przed pojawieniem się GPU, obliczenia ogólnego przeznaczenia, jak wiemy, były możliwe tylko z procesorami, które były pierwszymi głównymi jednostkami przetwarzającymi produkowane zarówno dla zastosowań konsumenckich, jak i do zaawansowanego obliczeń. Obliczenia GPU dramatycznie ewoluowało w ciągu ostatnich kilku dziesięcioleci, aby znaleźć szerokie zastosowanie w badaniach dotyczących uczenia maszynowego, sztucznej inteligencji i głębokiej nauki. GPU wzrósł wraz z wprowadzeniem interfejsów API GPU, takich jak Compute Unified Device Architecture (CUDA), która utorowała drogę do rozwoju bibliotek dla głębokich sieci neuronowych.
Co to jest FPGA?
Field Provable Brama tablica (FPGA) to zupełnie inna bestia, która przeniosła wydajność obliczeń GPU na zupełnie nowy poziom, oferując doskonałą wydajność w aplikacjach głębokich sieci neuronowych (DNNS), jednocześnie wykazując ulepszone zużycie energii. FPGA były początkowo używane do łączenia komponentów elektronicznych, takich jak kontrolery magistrali lub procesory, ale z czasem ich krajobraz aplikacji dramatycznie przekształcił. FPGA to urządzenia półprzewodników, które można zaprogramować elektronicznie, aby stać się dowolnym obwodem cyfrowym lub systemem. FPGA oferują lepszą elastyczność i szybkie możliwości prototypowania w porównaniu z projektami niestandardowymi. Altera Corporation z siedzibą w Kalifornii jest jednym z największych producentów FPGA, aw 2015 r. Firma została przejęta przez Intel. Są one bardzo różne od sprzętu opartego na instrukcjach, takich jak GPU, a najlepsza część jest to, że można je ponownie skonfigurować, aby spełnić wymagania większej liczby obciążeń związanych z danymi, takimi jak aplikacje do uczenia maszynowego.
Różnica między GPU i FPGA
Technologia
- GPU to wyspecjalizowany, elektroniczny obwód początkowo zaprojektowany w celu zaspokojenia potrzeby przyspieszania grafiki w celu obliczeń naukowych i inżynieryjnych ogólnego celu. GPU są zaprojektowane do działania w pojedynczej instrukcji wielu danych (SIMD). GPU wyładowuje niektóre z głośnych mocy części kodu poprzez przyspieszenie wydajności aplikacji działających na procesorze. Z drugiej strony FPGA to urządzenia półprzewodników, które można zaprogramować elektronicznie, aby stały się dowolnym obwodem cyfrowym lub systemem, który chcesz.
Czas oczekiwania
- FPGA oferują niższe opóźnienie niż GPU, co oznacza, że są one zoptymalizowane do przetwarzania aplikacji, gdy tylko dane wejściowe jest podawane z minimalnym opóźnieniem. Architektura FPGA pozwala mu osiągnąć wysoką moc obliczeniową bez złożonego procesu projektowania, dzięki czemu idealnie nadaje się do aplikacji o najniższych opóźnień. Osiągają znacznie wyższą zdolność obliczeniową w mniejszym czasie w porównaniu z procesorem graficznym, co stosunkowo musi ewoluować, aby pozostać aktualnym.
Wydajność energetyczna
- Efektywność energetyczna jest ważnym wskaźnikiem wydajności od lat, a FPGA Excel, ponieważ są one znane ze swojej wydajności energetycznej. Mogą obsługiwać bardzo wysoką szybkość przepustowości danych w odniesieniu do równoległego przetwarzania w obwodach zaimplementowanych w rekomponowanym tkaninie. Najlepszą rzeczą w FPGA jest to, że można go ponownie skonfigurować, co oferuje elastyczność, która daje im przewagę nad odpowiednikami GPU dla niektórych domen aplikacji. Wiele powszechnie używanych operacji danych można skutecznie zaimplementować na FPGA poprzez programowość sprzętową. GPU są również mocne, ale tylko w przypadku strumieni SIMD.
Operacje zmiennoprzecinkowe
- Wiele aplikacji obliczeniowych o wysokiej wydajności, takich jak głębokie uczenie się, wymaga silnej zależności od operacji zmiennoprzecinkowych. Chociaż elastyczna architektura FPGA wykazuje doskonały potencjał w rzadkich sieciach, które są jednym z najgorętszych tematów w aplikacjach ML, cierpią z powodu osiągnięcia wyższych prędkości dla zastosowań, które szeroko stosują operacje arytmetyczne o zmiennym punkcie arytmetycznym. Operacje zmiennoprzecinkowe to coś, w czym GPU są naprawdę dobre. Najszybszy procesor graficzny ma zmiennoprzecinkową wydajność maksymalnie 15 tflopów.
GPU vs. FPGA: wykres porównawczy
Streszczenie
W skrócie, GPU pozwala elastyczne środowisko programistyczne i szybsze czasy zwrotu, ale FPGA oferują znacznie lepszą elastyczność i szybkie możliwości prototypowania. Podczas gdy GPU są najlepsze, jeśli chodzi o wysokowydajne aplikacje obliczeniowe, które zależą od operacji arytmetycznych o zmiennym punkcie, FPGA są świetne do zastosowań głodnych w energii, a ich opóźnienie jest znacznie bardziej deterministyczne, ponieważ są wyspecjalizowanymi procesorami, które można elektronicznie odtworzyć, aby stać się jakimkolwiek jakimkolwiek rodzajem obwodu cyfrowego lub systemu. W niektórych obszarach aplikacji FPGA są bardzo trudne do pokonania, takie jak zastosowania wojskowe, takie jak systemy poradnictwa, które wymagają niskiego opóźnienia.