Szybka wydajność jednowątkowa i bardzo wysoka przepustowość wielu wątków to dokładnie to, co uzyskujesz dzięki procesorowi takim jak Intel Xeon E5-2699v4 .
To 22-rdzeniowy Broadwell. Długotrwała prędkość zegara wynosi 2,2 GHz przy wszystkich aktywnych rdzeniach (np. Kodowanie wideo), ale jedno-rdzeniowe maks. Turbo wynosi 3,6 GHz.
Dlatego podczas wykonywania zadania równoległego wykorzystuje budżet mocy 145 W jako 22 rdzenie 6,6 W. Ale podczas wykonywania zadania z zaledwie kilkoma wątkami ten sam budżet mocy pozwala kilku rdzeniom na turbo do 3,6 GHz. ( Niższa pamięć jednordzeniowa i przepustowość pamięci podręcznej L3 w dużym Xeon oznacza, że może nie działać tak szybko, jak czterordzeniowy pulpit z częstotliwością 3,6 GHz. Jeden rdzeń w stacjonarnym procesorze Intel może zużywać znacznie więcej całkowita przepustowość pamięci).
Znamionowa prędkość zegara 2,2 GHz jest tak niska z powodu ograniczeń termicznych. Im więcej rdzeni ma procesor, tym wolniej muszą działać, gdy wszystkie są aktywne. Ten efekt nie jest bardzo duży w 4 i 8 rdzeniowych procesorach, o których wspomniałeś w pytaniu, ponieważ 8 nie ma tak wielu rdzeni i mają bardzo wysokie budżety mocy. Nawet entuzjaści komputerów stacjonarnych zauważalnie zauważają ten efekt: Skylake-X i9-7900X Intela to część 10c20t z podstawową częstotliwością 3,3 GHz, maks. Turbo 4,5 GHz . To znacznie więcej pojedynczego turbo headroom niż i7-6700k (4,0 GHz podtrzymane / 4,2 GHz bez podkręcania).
Skalowanie częstotliwości / napięcia (DVFS) pozwala temu samemu rdzeniu działać w szerokim zakresie krzywej wydajności / wydajności. Zobacz także prezentację IDF2015 na temat zarządzania energią Skylake , z mnóstwem interesujących szczegółów na temat tego, co procesory mogą zrobić wydajnie, a także kompromis między wydajnością a wydajnością zarówno statycznie w czasie projektowania, jak i w locie dzięki DVFS.
Na drugim końcu spektrum procesory Intel Core-M mają bardzo niską częstotliwość ciągłą , na przykład 1,2 GHz przy 4,5 W , ale mogą turbo do 2,9 GHz. Gdy aktywnych jest wiele rdzeni, będą one działać z bardziej wydajnym zegarem, tak jak gigantyczne Xeony.
Nie potrzebujesz heterogenicznej architektury w stylu big.LITTLE, aby uzyskać większość korzyści. Małe rdzenie w ARM big.LITTLE to dość kiepskie rdzenie w kolejności, które nie są dobre do pracy z komputerem. Chodzi o to, aby uruchomić interfejs użytkownika o bardzo niskiej mocy. Wiele z nich nie byłoby świetnych do kodowania wideo lub innych poważnych problemów z liczbami. ( @ Lưu Vĩnh Phúc znalazł kilka dyskusji na temat tego, dlaczego x86 nie ma big.LITTLE . Zasadniczo, wydanie dodatkowego krzemu na bardzo powolny rdzeń o bardzo niskim poborze mocy nie byłoby warte typowego użycia na komputerze stacjonarnym / laptopie.)
podczas gdy aplikacje takie jak edycja wideo zależą od liczby rdzeni. [Czy 2x 4,0 GHz + 4x 2,0 2,0 GHz nie byłoby lepsze przy obciążeniach wielowątkowych niż 4x 4 GHz?]
To jest twoje kluczowe nieporozumienie. Wydaje się, że myślisz, że ta sama liczba tyknięć zegara na sekundę jest bardziej użyteczna, jeśli rozłożona jest na więcej rdzeni. Tak nigdy nie jest. To bardziej jak
cores * perf_per_core * (scaling efficiency)^cores
( perf_per_core
to nie to samo, co szybkość zegara, ponieważ Pentium4 3GHz dostanie o wiele mniej pracy na cykl zegara niż Skylake 3GHz.)
Co ważniejsze, bardzo rzadko wydajność wynosi 1,0. Niektóre zawstydzająco równoległe zadania skalują się prawie liniowo (np. Kompilacja wielu plików źródłowych). Ale kodowanie wideo nie jest takie. W przypadku x264 skalowanie jest bardzo dobre do kilku rdzeni, ale pogarsza się z większą liczbą rdzeni. np. przejście z 1 do 2 rdzeni prawie podwoi prędkość, ale przejście z 32 do 64 rdzeni pomoże znacznie mniej w przypadku typowego kodowania 1080p. Punkt, w którym plateau prędkości zależy od ustawień. ( -preset veryslow
wykonuje więcej analiz dla każdej ramki i może zajmować więcej rdzeni niż -preset fast
).
Przy wielu bardzo wolnych rdzeniach, jednowątkowe części x264 stałyby się wąskimi gardłami. (np. końcowe kodowanie strumienia bitów CABAC. Jest to odpowiednik gzip h.264 i nie działa równolegle.) Posiadanie kilku szybkich rdzeni rozwiązałoby to, gdyby system operacyjny wiedział, jak to zaplanować (lub jeśli x264 przypiął odpowiednie wątki do szybkie rdzenie).
x265 może korzystać z większej liczby rdzeni niż x264, ponieważ ma więcej do zrobienia, a konstrukcja WPP h.265 pozwala na więcej kodowania i dekodowania równoległości. Ale nawet w przypadku 1080p w pewnym momencie zabrakło Ci równoległości.
Jeśli masz wiele filmów do zakodowania, robienie wielu filmów w równoległych skalach dobrze, z wyjątkiem konkurencji o wspólne zasoby, takie jak pojemność pamięci podręcznej L3 i przepustowość oraz przepustowość pamięci. Mniej szybszych rdzeni mogłoby uzyskać większe korzyści z tej samej ilości pamięci podręcznej L3, ponieważ nie musiałyby pracować nad tak wieloma różnymi częściami problemu na raz.