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?
Odpowiedzi:
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.
źródło
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.
źródło
Jak myślisz, dlaczego producenci obniżają taktowanie, porównując tylko dwa procesory?
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.
źródło
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.
źródło
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.
źródło
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
źródło
Straty ciepła są
H
równe czwartemu stopniowi częstotliwościf
.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ą.
źródło
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.
źródło
Z IEEE:
http://spectrum.ieee.org/computing/hardware/why-cpu-frequency-stalled
źródło