Dlaczego producenci procesorów przestali zwiększać taktowanie swoich procesorów? [Zamknięte]

63

Czytałem, że producenci przestali koncentrować się na wyższych częstotliwościach zegara i teraz pracują nad innymi rzeczami, aby poprawić wydajność.

Z

  • stary komputer stacjonarny z procesorem Intel® Xeon® E3110 z taktowaniem 3,0 GHz
  • oraz nowy serwer z procesorem AMD Opteron ™ 6272 z taktowaniem 2,1 GHz

po wykonaniu prostego porównania szyfrowania przy użyciu (jednowątkowego)

 openssl aes256c

pulpit działał znacznie lepiej niż serwer.

Więc nawet przy najnowszej optymalizacji, dlaczego procesor z lepszą częstotliwością zegara działa lepiej?

uczeń
źródło
57
Układ pulpitu jest dwurdzeniowy; serwer to 16-rdzeniowy procesor. Korzystanie z jednowątkowego testu porównawczego wcale nie jest właściwe.
MSalters
@learner - Ponieważ prędkość procesorów nie może wzrosnąć wraz ze wzrostem wymaganego napięcia, co zmniejsza ciepło. Koncentrując się na zużyciu energii, będą w stanie teoretycznie zwiększyć prędkość procesora w przyszłości.
Ramhound
1
Proszę przytoczyć rzeczywiste przypadki „producentów”, nawet zmniejszając „taktowanie zegara” (bez porównywania jabłek i pomarańczy) lub ogranicz tytuł pytania do „nie zwiększania”.
Jan Doggen,
8
Częstotliwość taktowania AMD vs Intel nie była uczciwym porównaniem od czasów K6 / Pentium. AMD sprzedało procesory Athlon jako 2500+ lub 3000+, gdy ich taktowanie rdzenia mogło wynosić odpowiednio 1,8 lub 2,1, ale zwykle testowały one odpowiednio odpowiednio z procesorami Intel, które taktowały prawdziwe 2,5 lub 3GHz. Są to po prostu sposób zbyt wiele różnic między architektur teraz, aby dokonać porównania tylko na częstotliwości taktowania.
KeithS,

Odpowiedzi:

72

Powodem, dla którego producenci przestali koncentrować się na zwiększaniu częstotliwości taktowania, jest to, że nie możemy dłużej chłodzić procesorów wystarczająco szybko, aby było to wykonalne. Im wyższa jest częstotliwość taktowania, tym więcej ciepła jest generowane, a my osiągnęliśmy etap, w którym zwiększenie wydajności procesora nie jest już efektywne z powodu ilości energii przeznaczonej na jego chłodzenie.

Inna odpowiedź zawiera szczegółowe informacje na temat tego, jak wyższa częstotliwość taktowania nie oznacza lepszej wydajności we wszystkich obszarach.

Paul Hay
źródło
1
+1 Wydaje mi się, że kupiłem maszynę w momencie, gdy ta ściana została uderzona, mój 8-letni P4 3,4 GHz jest prawdopodobnie najszybszy pod względem częstotliwości zegara, patrząc na zdecydowaną większość rynku (bez OC).
Karthik T
2
zauważ, że zużycie energii również stanowiłoby problem. Gdybyś miał 16-rdzeniowy 3,0 GHz, to prawdopodobnie zużyłoby ponad 200 watów, które większość popularnych zasilaczy ledwo może obsługiwać w połączeniu z resztą systemu.
Mixxiphoid
9
@Mixxiphoid Trzeba też w jakiś sposób wprowadzić te 200+ W do procesora, przy napięciu, które obwód może obsłużyć. To samo w sobie jest nietrywialne zadanie.
CVn
1
Mało tego, aby zwiększyć taktowanie procesora, muszą zwiększyć potok, ale za każdym razem, gdy trzeba rozwidlić kod, zmienić kontekst, przeskoczyć lub wyczyścić pamięć, należy wyczyścić cały potok i trzeba go ponownie wypełnić, aby dać wynik dla tej instrukcji, więc lepiej zmniejszyć potok i częstotliwość procesora, więc za każdym razem, gdy trzeba rozwidlać, zmieniać kontekst, przeskakiwać, nie trzeba długo czekać, aby ponownie wypełnić rurociąg.
Lefsler
1
@demonofnight: Byłoby zbyt wiele, by mówić „za każdym razem, gdy trzeba (...) skoczyć”. Bezwarunkowe gałęzie bezpośrednie nie stanowią zagrożenia kontrolnego, więc nie liczą się z gałęzi warunkowych ~ 95% -99% są przewidywane różnymi technikami (dane oparte na niektórych papierach opartych na SPEC). Bezpośrednie odgałęzienia stanowią problem, jeśli cel nie jest jeszcze zarejestrowany i jest źle przewidziany. Nie jestem pewien, co rozumiesz przez „rozwidlenie kodu” lub „wyczyść pamięć”, ale przełączanie kontekstów nie powinno być wykonywane tak często (przerywa i ewentualnie I / O).
Maciej Piechotka,
37

Szybkość przetwarzania to znacznie więcej niż częstotliwość zegara.

  • Różne procesory mogą wykonywać różne ilości w tej samej liczbie cykli zegara, ze względu na różne warianty rozmieszczania potoków i posiadające wiele jednostek składowych (sumatory i tak dalej) w każdym rdzeniu. Podczas gdy w twoim teście tak nie jest, często okazuje się, że „wolniejszy” układ może zrobić więcej niż szybki (mierzony tylko częstotliwością taktowania), ponieważ jest w stanie zrobić więcej na tik.

  • Test, który przeprowadziłeś, może być bardzo wrażliwy na różnice w architekturze procesora: może być zoptymalizowany pod kątem konkretnej architektury, może się okazać, że działa inaczej nie tylko między procesorami Intel i AMD, ale między procesorami Intel (lub AMD) z różnych rodzin. Prawdopodobnie używa też jednego wątku, więc nie wykorzystuje wielu rdzeni procesorów.

  • Nastąpiło przejście na niższe częstotliwości taktowania z powodów związanych z zarządzaniem energią i ciepłem: zwiększenie częstotliwości taktowania nie ma liniowego wpływu na zużycie energii i moc cieplną.

  • Ze względu na powyższą nieliniową zależność jest o wiele bardziej wydajne w dzisiejszych wymaganiach, aby mieć wiele jednostek przetwarzających, niż zwiększać prędkość jednej jednostki jeszcze bardziej. Pozwala to również na sprytne sztuczki w celu oszczędzania energii, takie jak wyłączanie poszczególnych rdzeni, gdy nie są używane, i przywracanie ich z powrotem, gdy popyt ponownie wzrośnie. Oczywiście wiele rdzeni nie pomaga algorytmowi jednowątkowemu, choć byłoby tak, gdybyś uruchomił dwa lub więcej wystąpień w tym samym czasie.

David Spillett
źródło
Jaki jest zatem związek między częstotliwością taktowania a zużyciem energii?
user84207,
$ P = CV ^ 2f $. Możesz także przeczytać to .
zakkak
19

Jak myślisz, dlaczego producenci obniżają taktowanie, porównując tylko dwa procesory?

  1. 6272 ma Turbo Szybkość 3GHz. Niższa prędkość podstawowa służy tylko do obniżenia średniej mocy i utrzymania dopuszczalnego TDP dla stołu roboczego, gdy wszystkie rdzenie są obciążone.
  2. Następny wysokowydajny układ AMD dla komputerów stacjonarnych, FX-9590, osiągnie 5 GHz.

Również szybkość zegara nie jest taka sama jak wydajność na cykl zegara. Możesz mieć 3,4 GHz P4 vs. jeden 3,2 GHz z rdzenia i7-3930K, ale to nie znaczy, że rdzeń P4 jest szybszy.

Wszystko, co powiedzieliśmy tutaj o zużyciu energii, jest również całkowicie poprawne i prawdziwe w przypadku 16-rdzeniowego projektu, w którym naturalnie musisz bardziej martwić się kwestiami TDP.

Również twoja metoda testowania, czyli testowanie openssl, jest nieco prosta do podania liczb rzeczywistych. Może powinieneś wypróbować dowolny pakiet testów kryptograficznych.

s1lv3r
źródło
3
Wystarczy dodać analogię do taktowania = błąd wydajności. Wyobraź sobie, że jedna osoba robi bardzo małe kroki, ale bardzo szybko (duża częstotliwość zegara), w porównaniu do innej osoby, która robi bardzo duże kroki z nieco wolniejszą prędkością (niższa częstotliwość zegara). Osoba stawiająca duże kroki może poruszać się znacznie szybciej.
Martin Konecny
@MartinKonecny: Świetna wizualizacja!
Zach Latta
2
@MartinKonecny ​​Rozumiem, że większość instrukcji asemblera (ADD, MOV, IMUL itp.) Jest wykonywana w jednym cyklu. Czy w przypadku tych nowych procesorów wykonuje się wiele instrukcji w jednym cyklu?
nialsh
4
@nialsh Nie jest to wcale prawdą w przypadku komputerów CISC (w rzeczywistości jedną z kluczowych cech CISC jest to, że instrukcje zajmują wiele cykli), jeśli wszystkie instrukcje trwały jeden cykl, wówczas wykonanie najwolniejszej instrukcji zajmie tyle samo czasu, co najszybsze instrukcja.
Scott Chamberlain,
Procesory x86 wymagały wielu cykli zegara na instrukcję, ale obecnie mogą wykonywać wiele instrukcji na cykl zegara.
Oskar Skog
13

Twoja walizka testowa (szyfrowanie aes-256) jest bardzo wrażliwa na optymalizacje specyficzne dla procesora.

Istnieją różne procesory, które mają specjalne instrukcje mające na celu przyspieszenie operacji szyfrowania / deszyfrowania. Te specjalne instrukcje mogą być nie tylko obecne na pulpicie - być może procesor AMD ma inne specjalne instrukcje. Ponadto openssl może obsługiwać te specjalne instrukcje tylko dla procesora Intel. Czy sprawdziłeś, czy tak było w przypadku?

Aby dowiedzieć się, który system jest szybszy, spróbuj użyć „właściwego” pakietu testów - lub lepiej, po prostu użyj typowego obciążenia.

jakob
źródło
Gdzie odbywa się tłumaczenie tej specjalnej instrukcji? Nie jestem pewien, czy istnieją różne kompilatory dla różnych zestawów instrukcji.
Shubham
Kompilatory mają opcje celowania w różne zestawy instrukcji i / lub specjalne „funkcje wewnętrzne”, które ściśle odwzorowują instrukcje specyficzne dla procesora. Możliwe jest, aby pojedynczy plik wykonywalny sprawdził, na jakiej rodzinie procesorów działa, i na tej podstawie wybrał inną ścieżkę kodu.
Russell Borogove,
10

Proste: układ AMD jest o wiele szybszy, ponieważ jest to układ 16-rdzeniowy. Przy 115 watach oznacza to, że każdy rdzeń wytwarza ~ 7 wat. Nie byłoby to możliwe, gdyby każdy rdzeń działał przy 3 Ghz. Aby osiągnąć tę wartość 7 W, AMD obniżyło częstotliwość taktowania. Obniżenie częstotliwości taktowania o 10% zmniejsza zużycie energii o 20%, co z kolei pozwala umieścić 25% dodatkowych rdzeni na chipie.

MSalters
źródło
10

Jak powiedzieli inni, nie możemy już skutecznie chłodzić procesorów, gdybyśmy podnieśli napięcie wymagane do tego samego względnego wzrostu częstotliwości taktowania w przeszłości. Był czas (era P4 i wcześniejsze), kiedy można było kupić nowy procesor i zobaczyć „natychmiastowy” wzrost prędkości, ponieważ częstotliwość taktowania została znacznie zwiększona w porównaniu do poprzedniej generacji. Teraz uderzyliśmy w ścianę termiczną.

Każda nowa nowoczesna generacja procesorów nieznacznie zwiększa częstotliwość taktowania, ale ma to również związek z możliwością odpowiedniego ich chłodzenia. Producenci chipów, tacy jak Intel, nieustannie koncentrują się na zmniejszaniu wielkości procesora, aby zwiększyć ich wydajność energetyczną i wytwarzać mniej ciepła przy tych samych zegarach. Na marginesie, ten kurczący się rozmiar matrycy sprawia, że ​​współczesne procesory są bardziej podatne na śmierć z powodu przepięcia niż przegrzania. Oznacza to, że ogranicza także taktowanie taktowania sufitu dowolnego procesora generacji prądowej bez innych optymalizacji dokonywanych przez producenta układu.

Innym obszarem, na którym twórcy chipów mocno się koncentrują, jest zwiększenie liczby rdzeni na chipie. Wpływa to na znaczny wzrost mocy obliczeniowej, ale tylko w przypadku korzystania z oprogramowania wykorzystującego wiele rdzeni. Zwróć uwagę na różnicę między mocą obliczeniową a prędkością. Mówiąc najprościej, prędkość odnosi się do tego, jak szybko komputer może wykonać pojedynczą instrukcję, natomiast moc obliczeniowa odnosi się do liczby obliczeń, które komputer może wykonać w danym czasie. Współczesne systemy operacyjne i wiele nowoczesnych programów wykorzystuje wiele rdzeni. Problem polega na tym, że programowanie współbieżne / równoległe jest trudniejsze niż standardowy paradygmat programowania liniowego. Zwiększyło to czas potrzebny wielu programom na rynku na pełne wykorzystanie mocy tych nowszych procesorów, ponieważ wielu programistów nie było przyzwyczajonych do pisania programów w ten sposób. Obecnie na rynku jest kilka programów (zarówno nowoczesnych, jak i starszych), które nie wykorzystują wielu rdzeni ani wielowątkowości. Przywołany program szyfrujący jest jednym z takich przykładów.

Te dwa obszary zainteresowania twórców układów scalonych są ze sobą nierozerwalnie związane. Dzięki zmniejszeniu zarówno wielkości matrycy, jak i zużycia energii przez układ scalony, są one w stanie zwiększyć liczbę rdzeni tego układu. Jednak ostatecznie to też uderzy w ścianę, powodując kolejną, bardziej drastyczną zmianę paradygmatu.

Powodem tej zmiany paradygmatu jest to, że zbliżamy się do granic krzemu jako materiału podstawowego do produkcji chipów. Jest to coś, nad czym Intel i inni pracowali nad rozwiązaniem od pewnego czasu. Intel stwierdził, że ma w pracach alternatywę dla krzemu i prawdopodobnie zaczniemy go widzieć jakiś czas po 2017 roku. Oprócz tego nowego materiału Intel szuka także tranzystorów 3D, które mogłyby „skutecznie potroić moc przetwarzania”. Oto artykuł wymieniający oba te pomysły: http://apcmag.com/intel-looks-beyond-silicon-for-processors-past-2017.htm

PseudoPsyche
źródło
2
  • Straty ciepła są H równe czwartemu stopniowi częstotliwości f.

    H ~ f ^ 4

    Tak więc niewielkie zwiększenie częstotliwości prowadzi do wysokich strat ciepła.

  • Dalsza miniaturyzacja

    Wyższa częstotliwość prowadzi do dalszej minimalizacji kryształów. W tej chwili nie mamy żadnych technologii, które mogłyby efektywnie współpracować z materiałami w skali nanometrowej, a nanometromierze są granicą.

Czarodziej
źródło
2
-1 Czwarta część mocy jest nieprawidłowa. Moc (wytwarzane ciepło na sekundę) w procesorach jest (z grubsza) liniowo proporcjonalna do częstotliwości taktowania, jak P ~ ​​f CV ^ 2 + P0 ( en.wikipedia.org/wiki/CPU_power_dissipation ). Przyznane napięcie zależy od prędkości zegara (choć niekoniecznie liniowej). Zobacz: physics.stackexchange.com/questions/34766 wzgledu, moc generowana przez CPU jest w przybliżeniu liniowy do kwadratowej o prędkości zegara w zakresie od 1,6 GHz - 5 GHz. (Nie wspierają f ^ 4).
dr jimbob
2

Jak stwierdzono w kilku innych odpowiedziach, producenci procesorów chcą obniżyć prędkości zegara, aby kontrolować zużycie energii i rozpraszanie ciepła. Aby wykonać więcej pracy przy tej samej szybkości zegara, stosuje się kilka strategii.

Duże wbudowane pamięci podręczne mogą przechowywać więcej danych „blisko” procesora, dostępnych do przetworzenia z minimalnym opóźnieniem, w przeciwieństwie do pamięci głównej, która jest znacznie wolniejsza w dostarczaniu danych do procesora.

Różne instrukcje procesora wymagają różnej liczby cykli zegara. W wielu przypadkach można użyć prostego obwodu do realizacji operacji w kilku cyklach zegarowych lub bardziej złożonego obwodu, aby wykonać to w mniejszej liczbie.

Najbardziej dramatycznym przykładem tego w ewolucji Intela jest Pentium 4, który był dużym odstającym zegarem, ale nie działał proporcjonalnie dobrze. Instrukcje zmiany bitów, które we wcześniejszych układach mogły przesuwać 32 bity w jednym cyklu, wykorzystywały znacznie prostszy obwód w Pentium 4, który wymagał jednego cyklu dla każdej zmiany bitu. Oczekiwano, że architektura Pentium 4 będzie skalowalna do znacznie wyższych częstotliwości zegara ze względu na swoją prostotę, ale to nie zadziałało, a szybki, złożony obwód przesunięcia powrócił w architekturze Core i późniejszych.

Russell Borogove
źródło
2

Z IEEE:

Dlaczego więc nie przyspieszyć zegara? Ponieważ nie jest już wart kosztów pod względem zużycia energii i rozpraszania ciepła. Intel nazywa kompromis prędkości / mocy „fundamentalnym twierdzeniem procesorów wielordzeniowych” - i to jest powód, dla którego sensowne jest użycie dwóch lub więcej obszarów przetwarzania lub rdzeni na jednym chipie.

http://spectrum.ieee.org/computing/hardware/why-cpu-frequency-stalled

Azevedo
źródło