Pytanie:
Dlaczego GPU zużywa tak dużo energii?
Luke Taylor
2020-07-22 21:16:36 UTC
view on stackexchange narkive permalink

Próbuję zrozumieć, dlaczego GPU zużywają tak dużo energii.Na przykład maksymalny pobór mocy GPU P100 wynosi 250 W.

Jak rozumiem, moc jest mierzona w watach jako prąd x napięcie .Biorąc pod uwagę stałe źródło zasilania (tj. Napięcie), założyłbym, że GPU pobierają dużo prądu.Jeśli dobrze to rozumiem, dlaczego GPU pobiera tak dużo prądu?

Myślę, że GPU składają się głównie z tranzystorów?Dlaczego więc konfiguracja tranzystorów w GPU prowadzi do większego zużycia energii niż w CPU?

Dzięki!

TU106 ma 10 miliardów tranzystorów.Jeśli każdy tranzystor potrzebuje 10 nanoamperów, to jest to 100A.
GPU jest dużo większy niż procesor, to pierwsza wskazówka.
Ponieważ robią dużo w krótkim czasie?Współczesny procesor graficzny jest prawdopodobnie najpotężniejszym komputerem specjalnego przeznaczenia dostępnym obecnie dla śmiertelników.
Zasadniczo przyczyny poboru mocy przez GPU są [takie same jak w przypadku procesorów] (https://electronics.stackexchange.com/questions/258724/why-do-cpus-need-so-much-current).Najlepsze procesory graficzne są większe niż procesory, z którymi je porównujesz, i dlatego potrzebują więcej mocy.
@ThorbjørnRavnAndersen Colossus CG2 są również sprzedawane śmiertelnikom.
@DmitryGrigoryev Zaryzykowałbym, że więcej Mortalt kupi karty graficzne niż ta.
Zwróć uwagę, że zaawansowane procesory są tak samo energochłonne, jak zaawansowane procesory graficzne.Obecne procesory Ryzen Threadripper są [oceniane na około 280 W] (https://en.wikipedia.org/wiki/List_of_AMD_Ryzen_microprocessors#Zen_2_based).
Przesłanka pytania jest niejasna.Pytasz, że układy GPU zużywają tyle energii _w porównaniu z czym_?Przeciętny procesor przy średnim obciążeniu?Procesor wykonujący te same obliczenia co GPU?Coś innego?
Niestety nie mogę na to odpowiedzieć, ponieważ jest chroniony, ale krótka odpowiedź brzmi: lepszym pytaniem jest, dlaczego używają tak małej_ mocy.Układy GPU są z łatwością najbardziej energooszczędnymi urządzeniami obliczeniowymi na rynku masowym pod względem mocy na FLOPS.Wysokiej klasy procesor ma kilkadziesiąt rdzeni.Wysokiej klasy procesor graficzny ma _kilka tysięcy_.Odpowiedź na _to_ pytanie brzmi: „ponieważ ich rdzenie są bardzo proste w porównaniu z rdzeniami procesora i zaprojektowane tak, aby były bardzo dobre w wykonywaniu tych samych obliczeń zmiennoprzecinkowych na dużych zbiorach danych i niezbyt dobre w niczym innym”.Prawie potrzebujesz FPGA lub ASIC, aby poprawić.
(Jeśli nie będzie to chronione, pisz do mnie, a spróbuję napisać poprawną odpowiedź, a nie w komentarzu).
Pięć odpowiedzi:
jusaca
2020-07-22 21:22:10 UTC
view on stackexchange narkive permalink

GPU to w zasadzie DUŻO równoległych uproszczonych procesorów.Każdy z nich nie jest tak wydajny i elastyczny jak prawdziwy procesor, ale są ich tysiące, które zapewniają tę ogromną wydajność obliczeń równoległych.

Ale oznacza to również, że zbudowanie nowoczesnego procesora graficznego wymaga wielu miliardów tranzystorów.W przypadku układów logicznych używamy tranzystorów FET, więc z każdym cyklem zegara wszystkie miliardy pojemności bramki muszą być ładowane i rozładowywane.To jest tam, gdzie zmierza duża ilość mocy.

W zależności od wykonywanych obliczeń nie każdy tranzystor przełącza się w każdym cyklu. (np. pewna jednostka wykonawcza jest prawdopodobnie bezczynna, jeśli inna jest zajęta, ale zwykle jedna lub druga się przełącza, więc średnie przełączanie frakcji jest prawdopodobnie podobne).Jest też prąd upływowy (moc statyczna) z wielu tranzystorów, w tym tych, które rzadko się przełączają (np. W macierzach pamięci podręcznej).Tylko stany bezczynności o niskiej mocy, które całkowicie odcinają zasilanie części chipa, mogą tego uniknąć, a obudzenie się z takich stanów wymaga czasu, więc nie można ich używać zbyt agresywnie.Bramkowanie zegarowe pomaga w przypadku krótkich bezczynności ...
Ale tak, +1, to przydatne uproszczenie szczegółów.Gigantyczny układ działa gorąco, ponieważ nawet przy niższej częstotliwości niż procesory, aby zmaksymalizować moc obliczeniową na energię (zamiast wydajności procesora jednowątkowego), nadal wymaga trochę minimum i podsumowując, to dużo.
@PeterCordes, czy właściwie jesteśmy już blisko teoretycznego limitu?
@John: energii / obliczeń?Do diabła, nie, * wiele * rzędów wielkości.Ale dla dowolnego procesu krzemowego i projektu chipa istnieje pewna kombinacja napięcia i częstotliwości, która minimalizuje energię / obliczenia, zamiast minimalizować czas / obliczenia.Poniżej tego punktu marnujesz więcej energii na prąd upływu niż oszczędzasz na mocy dynamicznej, być może dlatego, że nie możesz już obniżyć napięcia bez błędów.Procesory graficzne dążą do bliższego punktu pracy i po prostu wydają więcej tranzystorów, procesory dążą do wyższych częstotliwości, ponieważ muszą radzić sobie z problemami, które nie są równoległe prawie idealnie.
@JohnDvorak Jeśli chodzi o teoretyczne ograniczenie, terminem do sprawdzenia jest „zasada Landauera”.I jak powiedział Piotr, mamy przed sobą długą drogę, zanim do tego podejdziemy.
TimWescott
2020-07-22 21:53:00 UTC
view on stackexchange narkive permalink

To pytanie dotyczy tego, dlaczego szybszy zegar w danym procesorze wymaga większej mocy i ma wiele naprawdę dobrych odpowiedzi.

Weź te odpowiedzi i dodaj do nich fakt, że zużycie energii jest konsekwencją nie tylko szybkości przełączania logiki, ale także jej ilości - a GPU ma mnóstwo logiki,wszystko to zmienia się szaleńczo, gdy jest ciężko w pracy.

user1850479
2020-07-22 21:20:05 UTC
view on stackexchange narkive permalink

Procesory graficzne zużywają dużo energii, ponieważ mają dużą liczbę tranzystorów przełączających się z wysoką częstotliwością.

W porównaniu do wysokiej klasy procesorów graficznych procesory zwykle mają o wiele mniej przełączanych tranzystorów w dowolnym momencie, więc nie wymagają tak dużej mocy.Nie zawsze jest to prawdą, można uzyskać układy GPU o niskiej mocy i ogromne procesory serwerowe o bardzo wysokich wymaganiach energetycznych.

DKNguyen
2020-07-22 23:29:35 UTC
view on stackexchange narkive permalink

GPU to wiele mniejszych procesorów działających jednocześnie równolegle.

Każdy procesor zawiera wiele tranzystorów. Wiele procesorów równolegle oznacza jeszcze więcej tranzystorów.

Za każdym razem, gdy każdy tranzystor się przełącza, musi ładować lub rozładowywać pasożytniczą pojemność wewnątrz tranzystora. Zatem im częściej tranzystor się przełącza, tym częściej ta pojemność jest ładowana / rozładowywana, co oznacza, że ​​więcej energii jest pobierane. Procesory graficzne działają szybko, więc często się zmieniają.

A więc fakt, że procesory graficzne zawierają wiele tranzystorów przełączających się w tym samym czasie (ponieważ nie jest to tylko jeden procesor działający w jednej chwili, jego wiele procesorów działa w jednej chwili) i przełączanie bardzo często oznacza bardzo duże prądy do ładowania i rozładowywania wszystkie te pasożytnicze kondensatory jednocześnie.

Zwykły procesor jest bardziej złożony i ma więcej tranzystorów niż jakikolwiek pojedynczy procesor wewnątrz GPU, ponieważ ma wyższą funkcjonalność, ale jednocześnie wykonuje tylko jedną lub dwie rzeczy, więc tylko niewielka część tranzystorów jest przełączanie w dowolnym momencie.

user258330
2020-07-23 19:42:40 UTC
view on stackexchange narkive permalink

Uwaga: to krótki komentarz do odpowiedzi opublikowanej przez @ user1850479 ( Dlaczego GPU zużywa tak dużo energii?); jedynym powodem, dla którego istnieje jako „odpowiedź” jest to, że opublikowanie komentarza wymaga 50 punktów reputacji, których nie mam. Jeśli ktoś chce pomóc, kopiując jego treść do (prawdziwego) komentarza w odpowiednim miejscu, jest to dla mnie w porządku i dzięki temu ten post może zostać usunięty. Nie jest konieczne żadne uznanie ani uznanie. Licencja: CC0 Dzięki. :)


Warto również zauważyć, że procesory wykonujące instrukcje wektorowe (warianty SSE, AVX) mogą pobierać więcej energii niż w innym przypadku wykonywałyby tylko standardowe instrukcje. Można to zaobserwować, uruchamiając programy 3D i zmuszając je do używania rasteryzatorów programowych - w istocie zmuszając procesor do przyjęcia obciążenia podobnego do GPU - takich jak WARP lub SwiftShader, które zwykle intensywnie korzystają z instrukcji wektorowych. Procesory Intela mają nawet funkcję ograniczania mocy specyficzną dla AVX, która uruchamia się, aby utrzymać procesor w zakresie znamionowym TDP.



To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 4.0, w ramach której jest rozpowszechniana.
Loading...