Несколько дней назад новость о том, что новые MacBook Pro с процессором Core i9 не могут работать «в полную силу», разлетелась по всему интернету. Конечно, многие сразу же стали винить в этом компанию Apple — дескать, они не смогли сделать нормальную систему охлаждения. Однако, как вы уже, наверное, поняли из заголовка, проблема лежит несколько глубже, и в сегодняшней статье мы поговорим о том, как на самом деле идет управление частотой у процессоров Intel, и почему в общем-то именно эта компания обманывает своих пользователей.
Для начала давайте сравним характеристики шести процессоров от Intel:
Название CPU | i5-7200U | i5-8250U | i7-7700HQ | i7-8750H | i9-8950HK | i7-8700K |
Частота номинальная/ максимальная на все ядра, ГГц |
2.5/3.1 | 1.6/3.4 | 2.8/3.4 | 2.2/3.9 | 2.9/4.3 | 3.7/4.3 |
Количество ядер/потоков | 2/4 | 4/8 | 4/8 | 6/12 | 6/12 | 6/12 |
Архитектура | Kaby Lake | Kaby Lake-R | Kaby Lake | Kaby Lake-R | Kaby Lake-R | Kaby Lake-R |
Тепловой пакет (TDP), Вт | 15 | 15 | 45 | 45 | 45 | 95 |
Казалось бы — тут подобраны абсолютно разные процессоры, и с первого взгляда подвоха не видно. Но давайте посмотрим подробнее, и начнем с первых двух процессоров. Архитектурных отличий между Kaby Lake и Kaby Lake-R нет, теплопакет у этих CPU одинаков, но второй имеет вдвое больше ядер и на 10% большую максимальную частоту. Магия? Идем дальше — между i5-8250U и i7-7700HQ различия только в теплопакете — у i7 он аж в 3 раза больше, но частоты и количество ядер совпадают!
Между i7-7700HQ и i7-8750H ситуация такая же, как и между первыми i5: теплопакет одинаков, но у нового процессора в полтора раза больше ядер и на 20% выше максимальная частота. С Core i9 и Core i7-8700K тоже все не так гладко — у них опять же совпадают все характеристики, кроме TDP — у i7 он вдвое больше.
Отсюда можно сделать один вывод: или законы физики для Intel не работают, или компания где-то мухлюет. Так как ученые недавно доказали, что привычная нам физика работает даже в «далекой-далекой галактике», то остается только второй вариант. Но в чем тут дело, не может же такая крупная компания врать в характеристиках? Разумеется нет, но вот недоговаривать — вполне, и в данном случае все дело в технологии под названием Turbo Boost.
Turbo Boost — попытка впихнуть невпихуемое
Давайте мысленно вернемся на 10 лет назад. Джобс достает из папки для бумаг MacBook Air, тем самым запустив гонку тонких легких ноутбуков — ультрабуков. Но ведь в них нужно было ставить какие-то процессоры, и вот тут возникла проблема: да, у Intel были в арсенале различные Core 2 Duo и Quad, с 2-4 ядрами и частотами под 3 ГГц. Но, увы, они требовали серьезного теплоотвода, ибо выделяли не менее 35 Вт тепла. Самым логичным решением было снижение частот до уровня ~1.5 ГГц — в таком случае TDP становился на уровне 15-17 Вт, и столько тепла уже можно было отвести в тонком корпусе. Но снижение частоты вдвое очень больно било по производительности, и пользователи первых MacBook Air это хорошо ощущали.
И в Intel смогли выйти из ситуации, причем достаточно просто и изящно — введя такую технологию, как Turbo Boost. В чем ее смысл? Если выполнены некоторые условия, то процессор может увеличивать частоту выше номинальной, тем самым обеспечивая большую производительность.
То есть если до этого условие работы процессора на номинальной частоте было одно — он не должен перегреваться, то теперь добавилось еще несколько условий, при выполнении которых процессор будет работать на более высокой частоте, чем номинальная.
Что это за условия? Самое главное — тепловыделение не должно выходить за указанные рамки. То есть, если теплопакет указан, например, в 15 Вт, то процессор может повышать частоту до тех пор, пока не упрется в это значение. Но и это еще не все — если посмотреть на пользовательские задачи, то большая их часть проходит за 20-30 сек: к примеру, столько времени грузится система, открываются тяжелые программы, идет разархивирование большинства архивов и т.д. И чтобы еще больше повысить производительность, Intel ввела два типа TDP — Long и Short.
В чем между ними разница? Long TDP — это тот теплопакет, который будет использовать процессор при длительной нагрузке на него (рендеринг, игры). Short TDP как раз предназначен для быстрых задач выше, и он зачастую бывает вдвое-втрое выше LTDP, но действует очень короткое время — 20-30 секунд, после чего вступает в ход LTDP. Тут Intel убивает сразу двух зайцев — и ультрабук будет в таких задачах работать не сильно медленнее более дорогих «игровых» устройств, и за такой промежуток времени нагрев будет не критичен, то есть защита от перегрева сработать не успеет.
Что касается других условий работы Turbo Boost, то их не мало — это может быть дополнительное ограничение по температуре, ограничение на максимальную частоту, напряжение, также производитель ноутбука волен настраивать уровни TDP по своему усмотрению. Но самый главный момент тут в том, что если хотя бы одно из условий не выполняется, или выполняется не полностью — авторазгон перестает работать полностью или частично, и при этом сама Intel оказывается ни при чем — они же не обещали, что процессор всегда будет работать на максимальной Turbo Boost-частоте. А вот родную частоту в рамках LTDP он точно удержит, так как она как раз — сюрприз — очень маленькая: так, у i5-8250U она всего 1.6 ГГц — на 55% ниже, чем у i5-7200U. И поэтому, если откинуть «необязательный» Turbo Boost, уже не вызывает удивление то, что 4 ядра с более низкими частотами «влазят» в тот же теплопакет, что и 2 ядра с более высокими частотами.
Практика на i5-8250U
Так как в моих руках есть ноутбук с i5-8250U, на котором к тому же я могу «играться» со значениями Long и Short TDP, то почему бы не посмотреть, как на практике работает то, что я написал выше. Будем запускать стресс-тест AIDA64 и смотреть, как меняется тепловыделение и частоты. По умолчанию параметры у ноутбука такие: Short TDP — 44 Вт, время работы STDP — 28 секунд, Long TDP — стандартный, 15 Вт.
Итак, запускаем стресс-тест, и что мы видим? TDP составляет 25 Вт, что меньше STDP, и поэтому процессор спокойно работает на максимальной частоте в 3.4 ГГц:
Но проходит 28 секунд и упс — срабатывает LTDP и тут же начинается так называемый «троттлинг по TDP»: так как 25 Вт > 15, то чтобы уместиться в этот теплопакет, процессор вынужден снижать частоту, в моем случае — до 2.7 ГГц:
В этом ноутбуке до перегрева дело не доходит, и даже после часа стресс-теста процессор так и будет работать на уровне 2.7-2.8 ГГц — как видите, она на 20% ниже максимально возможной, но все еще на целых 50% выше родных 1.6 ГГц — спецификации Intel выполнены, придраться не к чему.
Теперь давайте ради интереса превратим i5-8250U в i7-7700HQ — для этого достаточно поднять Long TDP до 45 Вт. Запускаем стресс-тест и видим, что через то время, после которого для i5 срабатывал троттлинг, импровизированный i7 продолжает без проблем работать на максимальной частоте, ибо до ограничения в 45 Вт далеко:
То есть если на бумаге эти два процессора выглядят схожими, то на практике i5 оказывается при долговременной нагрузке где-то на 20% медленнее, и при этом Intel нигде не наврала. Собственно, именно это же и происходит с 6-ядерными i7: да, им опять же не хватает их теплопакета в 45 Вт для работы на максимальных Turbo Boost-частотах, и поэтому при долговременной нагрузке их частоты, судя по тестам, оказываются в районе 2.9-3.3 ГГц — это опять же больше или равно родным частотам этих CPU (они от 2.2 до 2.9 ГГц), то есть опять же спецификации Intel выполнены.
Способы повышения производительности при троттлинге по TDP
Из написанного выше можно сделать простой вывод — нет смысла брать старшие мобильные процессоры в каждой из линеек, ибо при долговременной нагрузке они будут на уровне младших. Так, существует процессор i7-8550U — он, как и i5-8250U, имеет 4 ядра и 8 потоков и тот же TDP в 15 Вт, а максимальная частота на все ядра составляет уже 3.7 ГГц — на 300 МГц выше. Но, как вы видели из тестов выше, 15 Вт хватает для работы на частоте лишь в 2.7 ГГц, то есть смысла в таком i7 нет (да, кто-то может сказать, что этот CPU имеет на 2 МБ кэша L3 больше, и что это несколько увеличит производительность — в общем и целом так и есть, но тут уж пусть каждый для себя сам решает, стоит ли 3-5% производительности в некоторых задачах лишних 100-200 долларов).
Поэтому, если вы берете ноутбук и задумываетесь, какой CPU брать — посмотрите обзоры: если производитель не увеличил TDP, то можете смело брать младшую модель. Но вот о случае, когда производитель все-таки поднял TDP, или разрешил им управлять, поговорим ниже.
Итак, вы — «счастливый» владелец модели со старшим процессором в линейке, или собираетесь таковую купить. Для начала — поставьте программу Intel Extreme Tuning Utility (она абсолютно бесплатно доступна на сайте Intel), или, сокращенно — iXTU. Перейдите на вкладку All Controls и посмотрите, какие ползунки вам доступны:
Идеальный вариант — вы можете изменять значения TDP и напряжения. Хороший вариант — вы можете менять только TDP. Плохой — настроек нет вообще. Если у вас последний случай, то тут все просто — абсолютно нет никакого смысла брать старшую модель, «исправить» ее вы не сможете. Если вы такую модель уже взяли — увы, ничего сделать нельзя. И установка ноутбука в морозильник не поможет.
Если же у вас второй случай, то есть вы можете менять TDP, то вам повезло — немного перемещаете ползунок Turbo Boost Power Max вправо (на 3-5 Вт), применяете значение кнопкой Apply и запускаете любой стресс-тест (в той же AIDA64 или в iXTU, но тут он не очень хороший):
Если за полчаса-час теста температуры не превысили 90 градусов — вам повезло, продолжайте поднимать TDP до тех пор, пока температуры не перестанут вас устраивать (желательно не доводить прямо до уровня срабатывания тепловой защиты, лучше ограничиться 90 градусами). Если в ваших задачах вы нагружаете не только CPU, но и GPU, то нужно проводить одновременно и ее стресс-тест, так как нагрев видеокарты в ноутбуке может сильно влиять на нагрев процессора. Как только нашли «максимальный» уровень TDP, то можете нажать на кнопку «Save» и сохранить полученный профиль (он будет доступен на вкладке Profiles):
После перезагрузки примененные значения не сбрасываются, влиять на них может или сброс настроек BIOS, или глобальное обновление системы, или различные Power Management от производителя ноутбука.
Если у вас первый случай — вы можете менять и настройки TDP, и напряжения, то вы везунчик. Тут смысл в том, что все процессоры разные, и Intel обычно перестраховывается и поднимает напряжение, дабы все процессоры могли работать стабильно. Поэтому, если опустить напряжение, то зачастую при этом стабильность работы процессора сохраняется, но вот тепловыделение существенно уменьшается: так, Q ~ V2, то есть уменьшение напряжения (V) на 10% опустит тепловыделение (Q) уже на 23% — а это, в свою очередь, позволит процессору работать на более высокой частоте при том же уровне TDP.
Ваша же цель — найти стабильный уровень напряжений. Для этого опускайте Core, Cache и Graphics Voltage Offset с шагом в 10-20 мВ до тех пор, пока стресс-тесты будут проходить стабильно (не пугайтесь, если опустите напряжение слишком сильно и ноутбук выключится — это абсолютно не опасно, при загрузке все настройки будут сброшены на исходные):
В моем случае я смог опустить напряжения больше, чем на 0.1 В — это позволило процессору при LTDP в 15 Вт стабильно работать на частоте в 3 ГГц (вместо 2.7 раньше, то есть +10% производительности «из воздуха»). При этом, при желании, можно еще и TDP увеличить, и добиться стабильных 3.4 ГГц уже не при 25 Вт, а всего при 20. Так что, как видите, низкий TDP — не приговор, и при желании можно решить эту проблему и существенно увеличить производительность CPU.
MacBook Pro с Core i9 — все действительно так плохо?
Ну и под конец обратимся к все тому же многострадальному топовому MacBook. После прочтения статьи выше, казалось бы, все понятно — процессор не способен работать на максимальной Turbo Boost-частоте и троттлится до более низкой. Но тогда возникает вопрос — а почему помог трюк с морозильником? Ведь ограничение по TDP никак не связано с температурой. На деле все становится понятно, если взглянуть на скриншот из Intel Power Gadget:
Как видно, троттлинг по TDP не срабатывает, так как тепловыделение всего 33 Вт — на 12 Вт меньше LTDP. При этом температура составляет 91 градус, но пиков на графике до 800 МГц (срабатывание тепловой защиты) нет. Вердикт? Apple сделала еще одно условие, которое не позволяет процессору греться выше определенной температуры (возможно, выше 92 градусов), поэтому CPU вынужден сбрасывать частоту даже не достигнув максимального TDP. И поэтому помещение ноутбука в морозильник помогает — температура падает, и раз троттлинга по TDP нет — частота начинает расти, и ноутбук начинает работать быстрее.
Отсюда можно сделать два неутешительных вывода: во-первых, система охлаждения в MacBook Pro не удовлетворяет требованиям Intel, так как не способна отвести 45 Вт. Во-вторых, под большим вопросом вообще целесообразность покупки даже младшей версии такого MacBook, так как 33 Вт хватает чтобы работать на частоте всего в 2.2 ГГц — это как раз родная частота самого простого шестиядерного i7, то есть о Turbo Boost можно забыть — при этом в ноутбуках от других производителей с таким же процессором и хорошей СО в TDP 45 Вт он «влезает» на частоте ~3 ГГц.
Что же в итоге? А в итоге Intel, как и любая крупная компания, занимается «мухлежом». Так что будьте аккуратнее при покупке техники, дабы не купить MacBook с Core i9 за полмиллиона рублей, который в итоге оказывается слабее прошлогодней модели с i7.