Как ускорить процессор с помощью обновления «программного обеспечения»?


120

Новые процессоры AMD Ryzen отсутствуют на рынке и, к сожалению, им не хватает игр. Процессоры Intel явно быстрее для игр. Люди, конечно же, не поддержали это, и AMD сделала заявление, что они обновляют прошивку или программное обеспечение для ускорения Ryzen для игр.

Поправьте меня, если я не прав, но процессор должен иметь статическую прошивку, чтобы быть совместимым со стандартом x64? Если так, то AMD не придется оптимизировать игры (программное обеспечение) для своих процессоров, что, очевидно, невозможно? Что там происходит, чтобы говорить такие вещи, если кажется, что невозможно увидеть основные условия?

Но я могу ошибаться (надеюсь, что так), поэтому вопрос:

Можно ли добиться ускорения для процессора без замены базового оборудования? Если это возможно, как это сделать? Есть ли программное обеспечение помимо прошивки для процессора?


71
Вы можете использовать термин «микрокод» в Google.
PlasmaHH


10
Прошивка может быть хорошей или плохой, или просто не «хорошей для приложения». В x86 не определяется время выполнения команды, поэтому обновление прошивки (микрокода) для улучшения времени выполнения команды не нарушает совместимость с x86. Существует несколько потенциальных причин, по которым это возможно и может быть необходимо: 1) исходный микрокод работает быстро и не оптимально; 2) исходный микрокод работает хорошо, когда программа скомпилирована для Ryzen, но не если программа скомпилирована для универсального x86 или для процессора intel, который является большинством существующего программного обеспечения.
user3528438

15
Обновление микрокода может улучшить время выполнения команд, но их намного больше. Современные процессоры выполняют такие функции, как прогнозирование ветвлений, спекулятивное выполнение, выполнение не по порядку и многое другое, что может значительно повысить производительность. Все это контролируется микрокодом. Оптимизация микрокодов требует времени, и в конкурентном бизнесе этого товара часто не хватает.
LMiller7

4
Представьте, что вы бежите и по какой-то причине отказываетесь сгибать левую ногу. Это сделает вас неловким и медленным - вы можете легко увеличить скорость бега, более эффективно используя «то же оборудование» вашей ноги и сгибая ее более эффективно. Смена «мозговых» инструкций на ногу резко повышает производительность.
enderland

Ответы:


123

Современные процессоры намного сложнее, чем можно подумать. Они невероятно сложные, почти недоступные для понимания одного человека. Расширяя краткую реплику «орта», можно было бы иметь все следующее:

  1. Начнем с того, что почти все внутреннее оборудование настраивается в значительной степени. Существуют тысячи и тысячи регистров конфигурации с миллионами отдельных битов, которые должны быть установлены для работы CPU. Все несколько уровней взаимодействия между процессором и кешем имеют настраиваемые конвейеры, и различные временные задержки, очевидно, влияют на общую производительность.

  2. Архитекторы разработали сотни расширенных функций, которые у инженеров не было времени для проверки, поэтому сотни функций отключены или переведены в отказоустойчивую конфигурацию с помощью «кусочков курицы» . Но они могут быть настроены и включены, если найдены функциональными и полезными. Эти улучшающие функции обычно проходят углубленную проверку с течением времени и могут постепенно включаться в течение срока службы процессора с помощью различных исправлений микрокода.

  3. Все последние процессоры имеют несколько внутренних блоков, которые управляются независимыми микропроцессорами, встроенными в чип процессора x86. Одним из публично раскрытых единиц является P-Unit. Современные процессоры не могут функционировать без агрессивного управления питанием, иначе они тают. Однако глубокое управление питанием противоречит агрессивной политике тактового сигнала / напряжения на входе-выходе, и изменения в политике сильно влияют на общую производительность системы. Все детали контролируются P-модулем и могут быть оптимизированы / настроены путем загрузки другого патча микрокода, как здесь ответили.

  4. Многие другие аспекты внутреннего взаимодействия контролируются различными дополнительными встроенными процессорами, которые можно исправить, загрузив в них патчи микрокодов или обновив BIOS, если у него есть доступ к этим ресурсам конфигурации.

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


Я не уверен, какой ответ я должен принять. Ответ @ bwDraco в порядке, но ваш ответ больше соответствует реальному ответу, даже если он дает информацию о проблеме.
Артур PR

Ну, вы должны принять этот ответ. Вы пришли из электроники, поэтому вас интересует прошивка процессора (не некоторые изменения Windows). @ ArthurP.R.
AnoE

3
@ ArthurP.R. Если люди, проводившие сравнительный анализ, обнаружили, что Windows не назначает задачи многопоточным процессорам должным образом (потоки рассматриваются как независимые ядра), это означает, что AMD каким-то образом испортила дескрипторы процессора / что угодно, поэтому Microsoft не может их понять. Если дескрипторы могут быть исправлены в соответствии со стандартами Microsoft каким-либо механизмом обновления, то это было бы простым исправлением первого порядка. И вы задали общий вопрос, поэтому он отвечает на него. :-)
Ale..chenski

Вот почему я принял ваш ответ, даже если ответ @bwDraco подходит и здесь
Arthur PR

102

Разнообразные проблемы с программным обеспечением как на уровне операционной системы, так и на уровне приложений вызывают неоптимальную производительность.

Восьмиядерные процессоры Ryzen состоят из двух ядерных комплексов (CCX), каждый с четырьмя ядрами и 8 МБ кэш-памяти третьего уровня. Доступ к кэш-памяти L3 в другом CCX происходит медленнее из-за необходимости перемещать данные дальше по Infinity Fabric (запатентованное AMD-когерентное межсоединение), что означает, что перемещение потоков из одного CCX в другое или обмен данными между ядрами в разных CCX приводит к снижение производительности. Это наказание напоминает о том, что произошло бы на многосетевом сервере с операционной системой, не поддерживающей NUMA .

Похоже, что Windows имеет тенденцию просто перемещать процессы вокруг разных ядер и не распознает потери связи между CCX . Это означает, что Windows может помещать потоки в разные CCX, даже если это не требуется , что снижает производительность.

Немецкий обозреватель PC Games Hardware протестировал Ryzen 7 1800X с различным количеством отключенных ядер и обнаружил, что наличие двух CCX с двумя включенными ядрами на каждом дает более низкую производительность, чем один CCX, включающий все свои ядра без изменений:

Результат теста производительности компьютерных игр: Battlefield 1

И это несмотря на то, что наличие только одного CCX означает, что доступно только 8 МБ кэш-памяти L3, а не полные 16 МБ. Из статьи «Оборудование для компьютерных игр» через Google Translate (выделение добавлено):

[...] Гораздо более захватывающим является признание того факта, что передача данных CCX в любом случае мешает друг другу - иногда более, иногда менее четко. Преимущества более крупного кэша L3 (конфигурация 2 + 2) нигде не встречаются в этой серии измерений.

В этой статье «Перспектива ПК» показано, что существует существенная задержка связи между ядрами на разных CCX, но очень небольшая задержка при обмене данными с ядрами на одной и той же CCX. Обратите внимание, что в этой статье предполагается, что Windows знает о дизайне CCX и избегает планирования потоков на разных CCX, но члены сообщества обнаружили противоречивые результаты.


Многие (но не все) игровые тесты показывают повышенную производительность, когда SMT отключен. Однако ходят слухи, что Windows неправильно планирует, как будто каждый аппаратный поток как его собственное ядро ​​неверен . По словам AMD, это связано с тем, что многие приложения оптимизированы только для процессоров Intel (что не является неожиданным, учитывая, что AMD была MIA с рынка высокопроизводительных процессоров около пяти лет). AMD говорит, что они работают с сотнями разработчиков игр, чтобы улучшить производительность процессоров Ryzen. Тем не менее, я подозреваю, что обновление Windows все еще может помочь, более точно настроив планировщик для характеристик архитектуры Zen .

Следующий пример от Tom's Hardware демонстрирует снижение производительности при включенном SMT:

Результат теста Tom's Hardware: пепел сингулярности

TechSpot провел глубокий анализ игровой производительности с включенным и отключенным SMT и дал очень похожие результаты:

Результат теста TechSpot: Deus Ex: Mankind Divided


Есть также проблемы управления питанием, связанные с этими тестами. В том же заявлении AMD отмечается, что Windows не полностью осведомлена о новых функциях в Ryzen, таких как парковка ядра и быстрое переключение тактовой частоты. Это согласуется с улучшениями производительности, о которых сообщает Tom's Hardware при использовании плана High Performance Power (см. Диаграмму выше, HP = High Performance). Обновление для Windows может добавить поддержку этих функций и повысить производительность.


12
Я не уверен, что я следую. ОП прямо говорит, что поскольку на данном этапе вопрос об оптимизации игры для Райзена не обсуждается, а ошибки в Windows - еще более длинная история, как этот ответ помогает понять, как обновления встроенного ПО могут дать надежду на какое-либо улучшение производительности?
Ale..chenski

11
По сути, он говорит, что окна полностью запутались, как и где их потоки распределяются, что вызывает проблемы с производительностью.
подмастерье Компьютерщик

2
@JourneymanGeek, любая приличная Windows (я не уверен, подходит ли W10) всегда имеет явный контроль привязки ядра к процессу, и насмешка с привязкой всегда была первым инструментом в бенчмаркинге. Что нового тогда?
Ale..chenski

4
К сожалению, да, но обновления ядра находятся в разработке. Вам, вероятно, придется подождать ядра 4.12; 4.11 приносит некоторые исправления, но это не совсем так. phoronix.com/scan.php?page=news_item&px=Ryzen-7-Linux-4.11
bwDraco

7
@Crouchingkitten AMD может доставлять только драйверы, а не обновления ОС. Таких вещей нет в пуле задач AMDS.
Артур PR

9

http://wccftech.com/amd-ryzen-launch-aftermath-gaming-performance-amd-response/

1) Ранние версии BIOS материнской платы были, безусловно, проблемными: отключение несвязанных функций приводило к отключению ядер. Настройка разгона памяти на некоторых материнских платах отключит повышение. Некоторые модификации BIOS могут привести к универсально подавленной производительности.

2) Ryzen получает выгоду от отключения высокоточных таймеров событий (HPET). Разрешение таймера HPET может вызвать эффект наблюдателя, который может снизить производительность. Это опция BIOS или функция, которую можно отключить из командной оболочки Windows.

3) Ryzen выигрывает от включения профиля High Performance power. Это отменяет основную парковку. В конце концов у нас будет водитель, который позволит людям оставаться на равновесии и в любом случае отключить базовую парковку. Геймеры тоже этим занимались. Я оговорился здесь. Я хочу пояснить преимущество: режим высокой производительности позволяет процессору обновлять свое напряжение / тактовую частоту за 1 мс по сравнению с 30 мс, которые он принимает в сбалансированном режиме. Это то, что наш водитель сделает. Извиняюсь за путаницу!

Таким образом, реальный вопрос не в том, как обновление BIOS / прошивки может сделать процессор быстрее (он может это сделать, оптимизация микрокода и т. Д.), А в том, насколько поврежден процессор из-за неисправного BIOS / прошивки.


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

нп, это может быть достаточно абстрактно, чтобы остаться. Я следую за Райзеном, поскольку я планирую крупную перестройку, поэтому я следую за всеми проблемами прорезывания зубов. Как пользователь Linux, я также следую за специфическими для Linux проблемами. Одна вещь, которую следует рассмотреть с Ryzen (и ядром zen), это первый SMT AMD и первые признаки того, что он сообщает о логических ядрах иначе, чем Intel и BIOS / Windows могут пытаться использовать все «ядра» в качестве физических ядер, когда половина логична сердечники. Это значительно повлияет на производительность
Наиб

Ответы, комментарии и мысли по этому вопросу очень важны, я думаю, потому что люди должны знать, могут ли вещи стать еще лучше, и до сих пор я видел, что теперь я могу надеяться снова. Кстати, статья очень, очень хорошая!

Более подробная информация о Райзене ... forums.gentoo.org/viewtopic-t-1057910.html Группа из нас на посте на форуме gentoo и обсуждает, когда мы получим информацию. На данный момент для Linux драйверы mobo находятся только в git, тепловых мониторов также не существует ... Проблемы с HPET и ядрами являются насущной проблемой. Сейчас AMD полностью постучать Intel за чистый расчет
наиб

1
в какой-то степени да. Я остаюсь при своем заявлении , что для Ryzen этого времени калеки так BIOS / драйвера «скорость его»
Наиб

6

BIOS вообще считается прошивкой. BIOS может вертеть в аппаратных средствах все виды битов, чтобы изменить работу системы

Так что да, для них вполне выполнимо выдвинуть новую прошивку и для таких вещей, как тактовые частоты, или включены ли предварительные выборки, или же определенное ядро ​​- или IIO - может получить определенные предпочтения к кешу, который потенциально может повысить производительность в играх из-за для большинства игр разрабатываются однопоточными.


Это звучит интересно, можно ли найти какие-либо ссылки для этого? Было бы очень неплохо иметь некоторых из них, чтобы доказать это людям :)

@ ArthurP.R. Между pcode, ucode (микрокод) и bios производительность и функциональность чипа могут сильно изменяться. Это все программное обеспечение / прошивка. Источник мудрый, нет, я не могу дать вам никаких внешних источников для этой информации (так как все это внутреннее).
Орта

Какой облом @horta однако большое спасибо за эту информацию. Не стесняйтесь изменить свой ответ, чтобы включить эту информацию тоже. Это стоит того!

4

Это не так много, что обновления программного обеспечения сделают процессор быстрее. Все ожидают, что обновления программного обеспечения сделают программное обеспечение более подходящим для архитектуры Ryzen и смогут лучше использовать его производительность.

Поправьте меня, если я не прав, но процессор должен иметь статическую прошивку, чтобы быть совместимым со стандартом x64?

Почти. В ЦП есть программное обеспечение (микрокод, как упоминалось выше), и оно может влиять на производительность. По сути, X86 определяет только результаты операций, то, как именно процессор достигает этих результатов, является проблемой инженеров. Шансы на подстройку микрокода, играющего основную роль с Райзеном, невелики, поскольку разрыв в производительности, похоже, относится в основном к играм, что говорит о том, что процессор работает хорошо, но некоторые игры, в частности, не используют его хорошо.

Операционная система отвечает за обеспечение эффективного распределения программ по всему ЦП, что может повлиять на производительность, но в целом ни один из этих факторов не является основной проблемой для новой архитектуры. Большинство улучшений производительности в подобных случаях происходят в результате того, что разработчики пишут код, более подходящий для новой архитектуры. Как правило, этого не происходит между поколениями процессоров Intel, поскольку изменения в дизайне не так уж значительны, поэтому то, что хорошо работает для одного, скорее всего, будет хорошо для другого.

Райзен, однако, является совершенно новым дизайном, поэтому все, что было написано для других процессоров по определению, не было написано для Райзена.

Чтобы значительно упростить ситуацию, представьте два процессора:

  • Процессор Один был на рынке некоторое время, и (по любой причине) очень быстро добавляет цифры. Программное обеспечение предназначено для того, чтобы максимально использовать возможности дополнения, чтобы воспользоваться этой возможностью.

  • Конкурирующий процессор попадает на рынок и слабее при сложении, но сильнее при умножении. Все программное обеспечение, оптимизированное для использования более сложных инструкций, плохо работает на новом процессоре, но программное обеспечение, которое не было приспособлено для добавления большого количества партий, работает более или менее одинаково. Некоторое программное обеспечение уже может много умножаться и будет работать лучше на новых процессорах, чем на первом процессоре, даже в день запуска.

Через некоторое время после запуска разработчики начнут адаптироваться, используя больше умножения в своем программном обеспечении, или даже разработают свое программное обеспечение для переключения между сложными путями кода и сложными умножением в зависимости от используемой архитектуры ЦП.

Это то, что происходит с Райзеном - это новая архитектура, которую разработчики программного обеспечения еще не оптимизировали для соответствия характеристикам. Со временем разработчики начнут дорабатывать свое программное обеспечение, чтобы оно работало лучше. Поскольку большая часть программного обеспечения уже разработана для эффективной работы на процессорах Intel (в конце концов, они довольно популярны!), Они, вероятно, не получат значительных преимуществ от этих изменений.

Есть некоторые рабочие нагрузки, с которыми Intel просто останется быстрее, а некоторые, с которыми у Райзена уже быстрее (и они будут еще быстрее), в зависимости от основного поведения. В ситуации, которую я описал выше, часть программного обеспечения, которая требует только добавления чего-либо, всегда будет работать лучше на первом процессоре, а программа, которая просто должна умножать вещи, всегда будет работать лучше на втором, но по большей части программное обеспечение является сложным и эти различия несколько выровняются.

Если так, то AMD не придется оптимизировать игры (программное обеспечение) для своих процессоров, что, очевидно, невозможно?

Стоит также отметить, что AMD на самом деле говорит о производительности в играх, что они работают с разработчиками над оптимизацией игр. Они отправляют разработчикам системы (в настоящее время их насчитывается 300, и к концу года они стремятся к 1000) и общаются с теми, чьи игры плохо работают, чтобы помочь решить проблему. Насколько я знаю, не было заявлено, что AMD оптимизирует сами игры.

В этом конкретном случае Райзен в некоторых обстоятельствах сдерживается тем, что Windows принимает неверные решения о том, какие ядра загружать с работой, а текущие BIOS проблематичны по причинам, о которых я просто не буду притворяться, что знаю. Однако эти проблемы не могут быть причиной всего разрыва в производительности, поскольку существуют рабочие нагрузки, в которых Ryzen уже убедительно превосходит Intel, что говорит о том, что проблема, по крайней мере, частично (если не в основном) связана с конкретными выполняемыми программами, а не ОС или BIOS в целом.


Этот ответ тоже интересен и ни. Благодарю.
Артур PR

1

Конечно, программное обеспечение может улучшить производительность процессора или даже графического процессора.

Один из способов - это разгон или какой-то другой механизм изменения часов. Вторым может быть оптимизация драйверов. К ним относятся более эффективные методы сжатия данных, более быстрые алгоритмы декодирования и т. Д. ... в основном функции, которые помогают лучше использовать больше оборудования. Эти функции также могут быть обновлены с помощью обновлений прошивки, что не является (обычным) программным обеспечением. Тогда есть программное обеспечение, которое может контролировать решение охлаждения вашего компьютера. Это очень полезно для процессоров и графических процессоров, которые используют технологии повышения производительности, такие как Intel Turbo Boost и Nvidia GPU. Подобное оборудование имеет определенные температурные ограничения, поэтому они снижают производительность, когда работают слишком сильно и динамически разгоняются, когда приложения требуют более высокой вычислительной мощности, если они не достигли максимальной потребляемой мощности, и они

Есть и другие варианты, но они в основном покрывают это. По сути, если вы знаете проблему и можете программно манипулировать способом обработки данных (например, вводить некоторый алгоритм интеллектуального декодирования, который заменяет решение типа «грубой силы») или манипулировать реакциями процессора на различные ключевые факторы, влияющие на его производительность. (например, более интенсивное увеличение охлаждения в случае перегрева или мониторинга требований приложений к ресурсам и динамического разгона, когда требуется большая вычислительная мощность), вы можете многое сделать для улучшения (или ухудшения) производительности процессора.

В случае AMD, это, вероятно, оптимизация механизма повышения или охлаждения. Один или оба из них, вероятно, были изменены, чтобы более агрессивно реагировать на увеличение нагрузки или температуры.

TL; DR: Да, программное обеспечение может улучшить производительность процессора. Есть много способов сделать это, например, оптимизировать драйвер и встроенное ПО, разогнать и т. Д. Любое изменение программного обеспечения, которое подготавливает данные, чтобы их было проще обрабатывать или аппаратное обеспечение лучше реагировало на нагрузку или ее ограничения, с большой вероятностью приведет к повышению производительности.


-1

Обновления программного обеспечения определенно могут ускорить работу системы (включая процессор).

Очень ярким примером этого являются большие мэйнфрейм-компьютеры IBM: вы можете купить больше процессорного времени в сети, и все, что вы получите, это лицензионный ключ, который вы должны ввести в свою ОС, и бум!, Ваша система работает быстрее. Хитрость проста: планировщик ОС иногда просто отказывается планировать задачи и вместо этого переводит процессор в спящий режим или даже просто запускает цикл NO-OP на короткое время для достижения заданной общей средней пропускной способности. Если вы платите за более дорогую лицензию, планировщик удаляет эти NO-OP.

Или, что еще более радикально: если вы покупаете систему только с 4, 6 или 8 процессорами, то обычно их будет около 16-32. ОС просто отключает некоторые из них, и, введя лицензионный ключ, вы можете включить их.

Точно так же мэйнфреймы IBM различают разные типы процессоров: процессоры Linux, Java-процессоры, процессоры транзакций и т. Д. Они на самом деле являются одним и тем же процессором, но планировщик ОС откажется планировать задачи транзакций (которые являются наиболее важными) для Процессор Java или Linux. Только виртуальные машины Java будут запланированы для процессоров Java, и только виртуальные машины Linux будут запланированы для процессоров Linux. Если вы хотите получить более высокую производительность транзакций, вам нужно купить лицензии для большего количества процессоров транзакций: опять же, это те же самые процессоры, единственное отличие - флаг конфигурации в планировщике, который говорит: «Не планируйте задачи транзакций для этих процессоров». ».

Другим примером, не столь экстремальным, являются различные выпуски Windows. Разные выпуски Windows поддерживают разное количество ядер ЦП и разное количество памяти. Если у вас большой объем памяти и большое количество процессоров, вы можете ускорить работу своей системы, просто обновив версию Windows до «побольше». Обратите внимание, что издания имеют точно такой же код; где-то есть какой-то переключатель конфигурации, который говорит: «Вы Home Edition, вы поддерживаете только 1 процессор и 128 ГиБайт».

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.