Чому виробники процесорів припинили збільшувати тактову частоту своїх процесорів? [зачинено]


63

Я читав, що виробники перестали концентруватися на більшій тактовій швидкості і зараз працюють над іншими речами для підвищення продуктивності.

З

  • старий настільний апарат з процесором Intel® Xeon® E3110 з тактовою частотою 3,0 ГГц
  • і новий сервер з процесором 6272 AMD Opteron (TM) з тактовою частотою 2,1 ГГц

коли виконується просте порівняння шифрування з використанням (однопотокове)

 openssl aes256c

робочий стіл працює набагато краще, ніж сервер.

Тож навіть при останній оптимізації, чому процесор з кращою тактовою частотою працює краще?


57
Настільний чіп - двоядерний; сервер - це 16-ядерний процесор. Використання однопотокового еталону взагалі НЕ підходить.
MSalters

@learner - Оскільки швидкість процесорів не може зростати зі збільшенням необхідної напруги, що зменшує тепло. Зосереджуючись на споживанні енергії, вони зможуть теоретично знизити швидкості процесора в майбутньому.
Рамхаунд

1
Будь ласка, наведіть фактичні випадки, коли «виробники» навіть зменшують «тактову частоту» (не порівнюючи яблука та апельсини) або обмежте назву питання «не збільшуючи».
Ян Догген

8
Тактові швидкості AMD проти Intel не були справедливим порівнянням з часів K6 / Pentium. AMD продала процесори Athlon як 2500+ або 3000+, коли їх основні тактові частоти можуть бути відповідно 1,8 або 2,1, але вони, як правило, цілком відповідно орієнтовані на мікросхеми Intel, які виконували тактову частоту 2,5 або 3 ГГц. Є просто спосіб занадто багато відмінностей між архітектурою зараз , щоб зробити порівняння просто на високих тактових частотах.
KeithS

Відповіді:


72

Причина, по якій виробники перестали концентруватися на збільшенні тактової частоти, полягає в тому, що ми вже не можемо охолодити процесори досить швидко, щоб це стало життєздатним. Чим більша тактова частота, тим більше генерується тепла, і ми зараз потрапили на стадію, коли збільшувати швидкість процесора вже не ефективно через кількість енергії, яка йде на його охолодження.

Інша відповідь детально описується, як більша тактова частота не означає кращу продуктивність у всіх сферах.


1
+1 Я, здається, придбав свою машину прямо під час удару цієї стіни, мій 8-річний P4 3,4 ГГц - це, мабуть, найшвидший з точки зору тактової швидкості, коли дивлюся на переважну більшість ринку (без ОЗ).
Karthik T

2
зауважте, що споживання електроенергії теж буде проблемою. Якщо у вас був 16-ядерний 3,0 ГГц, він, ймовірно, споживав би 200 Вт, які найпоширеніші джерела живлення ледь підтримують у поєднанні з рештою системи.
Mixxiphoid

9
@Mixxiphoid Також вам потрібно буде якось зайняти ці 200+ Вт в процесорі при напрузі, з якою може працювати схема. Це саме по собі нетривіальне завдання.
CVn

1
Мало того, щоб збільшити годинник процесора, їм потрібно збільшити конвеєр, але кожен раз, коли вам потрібно роздрібнити код, змінити контекст, перестрибнути або очистити пам'ять, ви очистите весь конвеєр, і вам потрібно знову заповнити його, щоб надати результат для цієї інструкції, тому краще зменшити конвеєр і частоту процесора, тому кожен раз, коли вам потрібно роздвоюватися, змінювати контекст, стрибати, вам не потрібно довго чекати, щоб знову заповнити конвеєр.
Лефслер

1
@demonofnight: Занадто багато було б сказати "кожен раз, коли потрібно (...) стрибати". Беззастережні прямі гілки не становлять небезпеки для контролю, тому їх не рахують із умовних гілок ~ 95% -99% прогнозують різними методами (дані, засновані на деяких документах, заснованих на SPEC). Прямі гілки створюють проблему, якщо ціль ще не зареєстрована і є її неправильне передбачення. Я не впевнений, що ви маєте на увазі під "форк-кодом" або "очистити пам'ять", але контекстні комутатори не повинні виконуватись так часто (переривання та, можливо, введення-виведення).
Maciej Piechotka

37

Швидкість обробки набагато більше, ніж тактова частота.

  • Різні процесори можуть робити різну кількість за однакову кількість тактових циклів, що обумовлено різними варіантами розташування трубопроводу та мають кілька компонентних одиниць (суматори тощо) у кожному ядрі. Хоча у вашому тесті це не так, ви часто виявляєте, що "повільніший" чіп може зробити більше, ніж швидкий (вимірюється тільки тактовою частотою) через те, що ви можете зробити більше за тик.

  • Тест, який ви провели, може бути дуже чутливим до відмінностей в архітектурі процесора: він може бути оптимізований для конкретної архітектури, ви можете виявити, що він працює по-різному не тільки між мікросхемами Intel і AMD, але і між чіпами Intel (або AMD) різних сімей. Можливо, теж використовується один потік, тому це не скористається декількома ядрами процесорів.

  • З міркувань управління енергією та теплом спостерігається перехід до нижчих тактових частот: нарощування тактової частоти не має лінійного впливу на споживання енергії та тепловіддачу.

  • Через вищезазначене нелінійне співвідношення набагато ефективніше для сучасних вимог мати декілька процесорних одиниць, ніж підштовхувати швидкість одного одиниці все вище. Це також дозволяє розумні хитрощі для економії енергії, як відключення окремих ядер, коли вони не використовуються, і відновлення їх резервного копіювання, коли попит знову зростає. Звичайно, декілька ядер не допомагає однопоточному алгоритму, звичайно, якщо це було б, якщо ви запустили два або більше екземплярів цього одночасно.


Отже, яка залежність між тактовою частотою та використанням енергії?
користувач84207

$ P = CV ^ 2f $. Ви також можете прочитати це .
zakkak

19

Чому, на вашу думку, виробники насправді знижують тактову частоту, порівнюючи лише два процесори?

  1. У 6272 швидкість Turbo 3 ГГц. Нижня базова швидкість - це лише для зниження середньої потужності та збереження прийнятного TDP для робочого столу, коли всі ядра напружені.
  2. Наступний високопродуктивний чіп AMD для робочого столу FX-9590 складе 5 ГГц.

Також тактова швидкість не така, як продуктивність за тактовий цикл. Ви можете мати 3,8 ГГц P4 проти одного 3,2 ГГц ядра від i7-3930K, але це не означає, що ядро ​​P4 швидше.

Все, що говорилося тут про споживання електроенергії, також цілком справедливо і стосується 16-ти базової конструкції, де ви, природно, повинні бути більше стурбовані проблемами TDP.

Крім того, ваш тестовий метод лише тестування openssl - трохи простий, щоб дати реальні світові цифри. Можливо, вам слід спробувати будь-який набір криптовалют.


3
Просто додати аналогію до тактової швидкості = помилки продуктивності. Уявіть, що одна людина робить дуже маленькі кроки, але дуже швидко (висока тактова частота), а інша людина робить дуже великі кроки з дещо меншою швидкістю (нижча тактова частота). Людина, яка робить великі кроки, може рухатися набагато швидше.
Мартін Конечний

@MartinKonecny: Чудова візуалізація!
Zach Latta

2
@MartinKonecny ​​Я розумію, що більшість інструкцій асемблера (ADD, MOV, IMUL тощо) виконуються за один цикл. Тож із цими новими процесорами чи виконуються декілька інструкцій за один цикл?
nialsh

4
@nialsh Це зовсім не вірно для комп'ютерів CISC (адже одна з визначальних речей CISC - це інструкція провести кілька циклів), якщо всі інструкції займають один цикл, то для найповільнішої інструкції потрібно буде виконати стільки ж часу, як і найшвидший. інструкція.
Скотт Чемберлен

x86 ЦП використовувались для вимагання декількох тактових циклів за інструкцію, але в наші дні вони можуть виконувати кілька інструкцій за такт.
Оскар ского

13

Ваш тестовий випадок (шифрування Aes-256) дуже чутливий до оптимізацій, що стосуються процесора.

Існують різні ЦП, які мають спеціальні інструкції, спрямовані на прискорення операцій шифрування / дешифрування. Мало того, що ці спеціальні інструкції можуть бути присутніми лише на вашому робочому столі - можливо, у процесора AMD є різні спеціальні інструкції. Крім того, openssl може підтримувати ці спеціальні інструкції лише для процесора Intel. Ви перевіряли, чи це було так?

Щоб дізнатися, яка система швидша, спробуйте скористатися "належним" набором орієнтирів - а ще краще - просто скористайтеся типовим навантаженням.


Де відбувається переклад цієї спеціальної інструкції? Я не впевнений, чи є різні компілятори для різних наборів інструкцій.
Шубхам

У компіляторів є варіанти націлювання на різні набори інструкцій та / або спеціальні "внутрішні функції", які тісно відображають конкретні для процесора інструкції. Можна за допомогою одного виконуваного файлу перевірити, на якому сімействі процесора він працює, і вибрати інший шлях коду на основі цього.
Рассел Борогов

10

Просте: чіп AMD набагато швидше, тому що це 16-ядерний чіп. При 115 Вт це означає, що кожне ядро ​​виробляє ~ 7 Вт. Це було б недосяжно, якби кожне ядро ​​працювало на частоті 3 ГГц. Щоб досягти цієї цифри 7 Вт, AMD знизила тактову частоту. Зниження тактової частоти на 10% зменшує споживання електроенергії на 20%, що в свою чергу дозволяє помістити на мікросхему 25% додаткових ядер.


10

Як говорили інші, ми не можемо ефективно охолоджувати процесори, якби ми натискали на напругу, необхідне для того ж відносного збільшення тактової частоти в минулому. Був час (P4 епоха і раніше), коли можна було придбати новий процесор і побачити "негайне" посилення - швидкість, оскільки тактова частота була значно збільшена порівняно з попереднім поколінням. Зараз ми потрапили в теплову стінку, своєрідну.

Кожне нове сучасне покоління процесорів дуже незначно збільшується в тактовій частоті, але це також стосується можливості їх відповідного охолодження. Виробники мікросхем, такі як Intel, постійно зосереджуються на зменшенні розміру центрального процесора, щоб зробити їх більш енергоефективними та виробляти менше тепла при одних і тих же годинниках. Як бічна примітка, цей зменшується розмір штампів робить це сучасні процесори більш схильними до вмирання від перенапруги, а не від перегріву. Це означає, що вона також обмежує тактову частоту тактової частоти будь-якого процесора поточного покоління без інших оптимізацій, зроблених виробником чіпів.

Ще одна сфера, на яку сильно орієнтуються виробники чіпів, - це збільшення кількості ядер на мікросхемі. Це призводить до значного збільшення обчислювальної потужності, але лише при використанні програмного забезпечення, яке використовує переваги декількох ядер. Зверніть увагу на різницю між обчислювальною потужністю та швидкістю тут. Простіше кажучи, швидкість позначає те, як швидко комп'ютер може виконати одну інструкцію, тоді як обчислювальна потужність - це кількість обчислень, які комп'ютер може виконати за певну кількість часу. Сучасні операційні системи та багато сучасного програмного забезпечення дійсно користуються кількома ядрами. Проблема полягає в тому, що паралельне / паралельне програмування складніше, ніж стандартна лінійна парадигма програмування. Це збільшило час для багатьох програм на ринку, щоб повною мірою скористатися потужністю цих нових процесорів, оскільки багато розробників не звикли писати програми таким чином. Сьогодні на ринку є деякі програми (сучасні чи застарілі), які не скористаються декількома ядрами або багатопотоковою різьбою. Програма шифрування, яку ви цитували, є одним із таких прикладів.

Ці дві області фокусування виробників чіпів суттєво пов'язані. За рахунок зменшення розміру штампів та споживання енергії мікросхеми вони зможуть збільшити кількість ядер на зазначеній мікросхемі. Врешті-решт, це теж вдарить про стіну, спричинивши чергову, більш різку зміну парадигми.

Причина цієї зміни парадигми пояснюється тим, що ми наближаємось до меж кремнію як основного матеріалу для виробництва чіпів. Це те, над чим Intel та інші працювали над вирішенням певний час. Intel заявила, що в роботі є альтернатива кремнію, і ми, швидше за все, почнемо бачити його десь після 2017 року. Крім цього нового матеріалу, Intel також розглядає 3D-транзистори, які могли б "ефективно втричі перевищити потужність обробки". Ось стаття, в якій згадуються обидві ці ідеї: http://apcmag.com/intel-looks-beyond-silicon-for-processors-past-2017.htm


2
  • Теплові втрати H рівні 4-му ступені частоти f.

    H ~ f ^ 4

    Отже, незначне збільшення частоти призводить до великих втрат тепла.

  • Подальша мініатюризація

    Більш висока частота призводить до меншої мінімізації кристалів. На даний момент у нас немає технологій для ефективної роботи з нанометровими матеріалами, а нанометри - це межа.


2
-1 Четверта силова частина неправильна. Потужність (тепло, що генерується в секунду) в процесорах (приблизно) лінійно пропорційна тактовій частоті, наприклад P ~ f CV ^ 2 + P0 ( en.wikipedia.org/wiki/CPU_power_dissipation ). Зазначена напруга залежить від тактової частоти (хоча і не обов'язково лінійної). Дивіться: physics.stackexchange.com/questions/34766 Знизу, потужність, що створюється процесором, є приблизно лінійною до квадратичної на тактовій швидкості в діапазоні 1,6 ГГц - 5 ГГц. (Не підтримує f ^ 4).
dr jimbob

2

Як зазначено в кількох інших відповідях, виробники процесорів хочуть зменшити тактову частоту, щоб контролювати споживання електроенергії та тепловіддачу. Для того, щоб виконати більше роботи при однаковій тактовій швидкості, використовується кілька стратегій.

Великі кеші пам'яті на мікросхемі можуть зберігати більше даних "близько" до процесора, доступних для обробки з мінімальним затримкою, на відміну від основної пам'яті, яка набагато повільніше доставляє дані до процесора.

Різні інструкції щодо процесора потребують різної кількості циклів годин. У багатьох випадках ви можете використовувати просту схему для здійснення операції протягом декількох тактових циклів, або більш складну схему, щоб зробити це менше.

Найдраматичніший приклад цього в розробці Intel - Pentium 4, який був великим показником у тактовій швидкості, але не пропорційно добре. Інструкції щодо переміщення бітів, які в попередніх чіпах могли зміщувати 32 біти за один цикл, використовували набагато простішу схему в Pentium 4, яка вимагала одного циклу для кожного бітового зсуву. Очікували, що архітектура Pentium 4 може бути масштабованою до значно більших тактових частот через свою простоту, але це не вийшло, і швидка, складна схема зсуву повернулася в Core та пізніших архітектурах.


2

Від IEEE:

То чому б не натиснути на годинник швидше? Тому що це вже не варто витрат з точки зору споживаної енергії та тепловіддачі. Intel називає компроміс швидкості / потужності "основоположною теоремою багатоядерних процесорів" - і це є причиною, коли на одному мікросхемі є сенс використовувати дві або більше області обробки або ядра.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.