Skip to content

Dlaczego nadal używamy procesorów zamiast GPU?

28 de lipiec de 2021
sshot50994a0b81f19

Coraz częściej procesory graficzne są wykorzystywane do zadań niegraficznych, takich jak obliczenia ryzyka, obliczenia dynamiki płynów i analiza sejsmiczna. Co nas powstrzymuje przed przyjęciem urządzeń napędzanych przez GPU?

Dzisiejsza sesja pytań i odpowiedzi przychodzi do nas dzięki uprzejmości SuperUser — pododdziału Stack Exchange, społecznościowej grupy witryn internetowych z pytaniami i odpowiedziami.

Pytanie

Czytnik SuperUser Ell nadąża za nowinkami technicznymi i jest ciekawy, dlaczego nie używamy więcej systemów opartych na GPU:

Wydaje mi się, że w dzisiejszych czasach dużo obliczeń wykonuje się na GPU. Oczywiście tam robi się grafiki, ale przy użyciu CUDA i tym podobnych, sztucznej inteligencji, algorytmów haszujących (pomyśl Bitcoiny) i inne są również wykonywane na GPU. Dlaczego nie możemy po prostu pozbyć się procesora i używać samego GPU? Co sprawia, że ​​procesor graficzny jest o wiele szybszy niż procesor?

Dlaczego rzeczywiście? Co sprawia, że ​​procesor jest wyjątkowy?

Odpowiedź

Współtwórca SuperUser DragonLord oferuje dobrze obsługiwany przegląd różnic między procesorami graficznymi i procesorami:

TL; DR odpowiedź:GPU mają znacznie więcej rdzeni procesora niż procesory, ale ponieważ każdy rdzeń GPU działa znacznie wolniej niż rdzeń procesora i nie ma funkcji potrzebnych w nowoczesnych systemach operacyjnych, nie są one odpowiednie do wykonywania większości przetwarzania w codziennej pracy. Najbardziej nadają się do operacji wymagających dużej mocy obliczeniowej, takich jak przetwarzanie wideo i symulacje fizyczne.

Szczegółowa odpowiedź:GPUto wciąż stosunkowo nowa koncepcja. GPU były początkowo używane tylko do renderowania grafiki; W miarę zaawansowania technologii duża liczba rdzeni w procesorach graficznych w stosunku do procesorów została wykorzystana przez opracowanie możliwości obliczeniowych procesorów graficznych, aby mogły przetwarzać wiele równoległych strumieni danych jednocześnie, bez względu na to, jakie mogą być dane. Chociaż procesory graficzne mogą mieć setki, a nawet tysiące procesorów strumieniowych, każdy z nich działa wolniej niż rdzeń procesora i ma mniej funkcji (nawet jeśli sąTuring ukończonyi może być zaprogramowany do uruchamiania dowolnego programu, który może uruchomić procesor). Brakujące funkcje GPU obejmują przerwania i pamięć wirtualną, które są wymagane do wdrożenia nowoczesnego systemu operacyjnego.

Innymi słowy, procesory i karty graficzne mają znacznie różne architektury, dzięki czemu lepiej nadają się do różnych zadań. GPU może obsługiwać duże ilości danych w wielu strumieniach, wykonując na nich stosunkowo proste operacje, ale nie nadaje się do intensywnego lub złożonego przetwarzania pojedynczego lub kilku strumieni danych. Procesor jest znacznie szybszy w przeliczeniu na rdzeń (pod względem liczby instrukcji na sekundę) i może łatwiej wykonywać złożone operacje na jednym lub kilku strumieniach danych, ale nie może wydajnie obsługiwać wielu strumieni jednocześnie.

W rezultacie procesory graficzne nie są przystosowane do obsługi zadań, które nie przynoszą znaczących korzyści lub nie mogą być zrównoleglone, w tym wielu typowych aplikacji konsumenckich, takich jak edytory tekstów. . Co więcej, procesory graficzne wykorzystują zasadniczo inną architekturę; należałoby zaprogramować aplikację specjalnie dla procesora graficznego, aby działała, a do programowania procesorów graficznych wymagane są znacznie różne techniki. Te różne techniki obejmują nowe języki programowania, modyfikacje istniejących języków i nowe paradygmaty programowania, które lepiej nadają się do wyrażania obliczeń jako operacji równoległej, która ma być wykonywana przez wiele procesorów strumieniowych. Więcej informacji na temat technik potrzebnych do programowania procesorów graficznych można znaleźć w artykułach Wikipedii naprzetwarzanie strumienioweorazRównoległe obliczenia.

Nowoczesne procesory graficzne są w stanie wykonywać operacje wektorowe i arytmetykę zmiennoprzecinkową, a najnowsze karty mogą manipulować liczbami zmiennoprzecinkowymi o podwójnej precyzji. Struktury takie jak CUDA i OpenCL umożliwiają pisanie programów dla procesorów graficznych, a charakter procesorów graficznych sprawia, że ​​są one najbardziej odpowiednie do operacji wysoce równoległych, takich jak obliczenia naukowe, gdzie szereg wyspecjalizowanych kart obliczeniowych GPU może być realnym zamiennikiem małych oblicz klaster jako inSuperkomputery osobiste NVIDIA Tesla. Konsumenci z nowoczesnymi procesorami graficznymi, którzy mają doświadczenie w Folding@home, mogą wykorzystać je do wniesienia wkładuKlienci GPU, który może wykonywać symulacje fałdowania białek z bardzo dużą prędkością i wnosić więcej pracy do projektu (koniecznie przeczytajCzęsto zadawane pytaniapo pierwsze, zwłaszcza te związane z procesorami graficznymi). Procesory GPU mogą również umożliwić lepszą symulację fizyki w grach wideo przy użyciu technologii PhysX, przyspieszyć kodowanie i dekodowanie wideo oraz wykonywać inne zadania wymagające dużej mocy obliczeniowej. Do tego typu zadań najlepiej nadają się procesory graficzne.

AMD jest pionierem w projektowaniu procesorów o nazwieJednostka przyspieszonego przetwarzania (APU)który łączy konwencjonalne rdzenie procesora x86 z procesorami graficznymi. Może to umożliwić współdziałanie komponentów procesora i procesora graficznego i poprawić wydajność w systemach z ograniczoną przestrzenią na oddzielne komponenty. Wraz z dalszym rozwojem technologii będziemy świadkami coraz większego stopnia zbieżności tych niegdyś oddzielnych części. Jednak wiele zadań wykonywanych przez systemy operacyjne i aplikacje na komputery PC jest nadal lepiej dostosowanych do procesorów, a przyspieszenie programu przy użyciu GPU wymaga dużo pracy. Ponieważ tak wiele istniejącego oprogramowania wykorzystuje architekturę x86, a procesory graficzne wymagają różnych technik programowania i brakuje im kilku ważnych funkcji potrzebnych w systemach operacyjnych, ogólne przejście z procesora CPU na GPU do codziennych obliczeń jest niezwykle trudne.

Masz coś do dodania do wyjaśnienia? Dźwięk w komentarzach. Chcesz przeczytać więcej odpowiedzi od innych doświadczonych technologicznie użytkowników Stack Exchange?Sprawdź pełny wątek dyskusji tutaj.

Czy ten post był pomocny?