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


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

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

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

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


118
2018-03-07 21:45


Источник


Вы можете захотеть google термин «микрокод». - PlasmaHH
уже на SO: stackoverflow.com/questions/4366837/what-is-intel-microcode - szulat
Прошивка может быть хорошей или плохой, или просто не «хорошо для приложения». x86 не определяет время синхронизации команд, поэтому обновление микропрограммы (микрокода) для улучшения синхронизации команд не нарушает совместимость x86. Существует несколько потенциальных причин, по которым это возможно и может быть необходимо: 1) исходный микрокод является быстрой работой и не является оптимальным; 2) исходный микрокод хорошо работает при компиляции программы для Ryzen, но не в том случае, если программа скомпилирована для общего x86 или для процессора Intel, который является большинством существующего программного обеспечения. - user3528438
Обновление микрокода может улучшить время обучения, но есть намного больше. Современные процессоры выполняют такие вещи, как предсказание ветвей, спекулятивное выполнение, нерабочее исполнение и многое другое, что может значительно повысить производительность. Все это контролируется микрокодом. Оптимизация микрокодов требует времени, и этот товар часто не хватает в конкурентном бизнесе. - LMiller7
Представьте, что вы работаете, и по какой-то причине вы отказываетесь сгибать левую ногу. Это сделает вас неудобными и медленными - вы можете легко увеличить свою скорость за счет более эффективного использования «того же оборудования» вашей ноги и более эффективного изгиба. Изменение «мозговых» инструкций на ногу резко повышает производительность. - Elysian Fields


Ответы:


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

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

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

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

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

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


120
2018-03-07 23:58



Я не знаю, какой ответ я должен принять. @ Ответ bwDraco в порядке, но ваш ответ на этот вопрос более жестко, его ответ дает информацию о конкретной проблеме. - Arthur P. R.
Ну, вы должны принять это ответ. Вы пришли с электроники, так что вам кажется, что вас интересует Прошивка процессора (не некоторые изменения Windows). @ ArthurP.R. - AnoE
@ ArthurP.R. Если бы бенчмаркинг обнаружил, что Windows не назначает задачи для многопоточных процессоров должным образом (рассматривает потоки как независимые ядра), это означает, что AMD каким-то образом испортила дескрипторы процессора / что угодно, поэтому Microsoft не может их понять. Если дескрипторы могут быть исправлены по стандартам Microsoft с помощью какого-либо механизма обновления, это было бы легким исправлением первого порядка. И вы задали общий вопрос, так что это отвечает на него. :-) - Ali Chen
Вот почему я принял ваш ответ, даже если ответ на @bwDraco fit тоже здесь - Arthur P. R.


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

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

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

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

PC Games Hardware benchmark result: 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 benchmark result: Ashes of the Singularity

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

TechSpot benchmark result: Deus Ex: Mankind Divided


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


102
2018-03-08 00:09



Я не уверен, что следую. OP явно говорит, что, поскольку оптимизация игры для Ryzen на данном этапе не может быть и речи, а ошибки Windows - еще более длинная история, как этот ответ помогает понять, как обновления прошивки могут дать надежду на любое повышение производительности? - Ali Chen
По сути, он говорит, что окна полностью перепутаны с тем, как / где распределяет потоки, вызывая проблемы с производительностью. - Journeyman Geek♦
@JourneymanGeek, любая достойная Windows (я не уверен, что W10 имеет квалификацию) всегда имеет явный контроль над связностью ядра с процессом, и насмешка с аффинностью всегда была первым инструментом в бенчмаркинге. Что нового? - Ali Chen
К сожалению, да, но обновления ядра находятся в работе. Вам, вероятно, придется ждать ядра 4.12; 4.11 приносит некоторые исправления, но это не совсем так. phoronix.com/scan.php?page=news_item&px=Ryzen-7-Linux-4.11 - bwDraco
@Crouchingkitten AMD может поставлять драйверы, а не обновления ОС. Такой материал не находится в пуле задач AMDS. - Arthur P. R.


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

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

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

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

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


9
2018-03-07 22:00



Прошу прощения за неправильную сторону вопроса. Я думал, что это будет особенно уместно, потому что меня тоже интересует нетривиальная информация.
np, это может быть достаточно абстрактным, чтобы остаться. Я следую за Рызеном, поскольку планирую крупную перестройку, поэтому я слежу за всеми прорезывающими проблемами. Являясь пользователем Linux, я также следую конкретным проблемам, связанным с Linux. Одна вещь, которую следует рассмотреть с помощью Ryzen (и ядра zen), - это первые SMT и первые признаки AMD, которые сообщают о логических ядрах по-разному, чем Intel, а BIOS / Windows может пытаться использовать все «ядра» в качестве физических ядер, когда половина логична сердечники. Это ЗНАЧИТЕЛЬНО повлияет на производительность - Naib
Ответы, комментарии и мысли по этому вопросу очень важны, я думаю, потому что людям нужно знать, все ли может стать лучше, и до сих пор я видел, что теперь могу снова надеяться. Кстати, статья очень хорошая!
Для более Ryzen конкретных ... forums.gentoo.org/viewtopic-t-1057910.html Куча нас на форуме gentoo и обсуждаем, когда мы получаем информацию. Прямо сейчас для linux звуковые драйверы mobo находятся только в git, аналогично тепловые мониторы не существуют ... Вопросы HPET и основные проблемы являются непосредственной проблемой. Сейчас AMD полностью выбивает Intel для чистых вычислений - Naib
до степени да. Я согласен с тем, что для Ryzen это искалечено, так что BIOS / драйверы «ускорят его», - Naib


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

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


6
2018-03-07 21:53



Это звучит интересно, можно ли найти для этого ссылки? Было бы очень приятно иметь некоторых из них, чтобы доказать это людям :)
@ ArthurP.R. Между pcode, ucode (микрокодом) и биосом производительность и функциональность чипа могут быть значительно изменены. Все это программное обеспечение / прошивка. Источник мудрый, нет, я не могу дать вам никаких внешних источников для этой информации (так как это все внутреннее). - horta
Что за обман, но большое спасибо за эту информацию. Не стесняйтесь также корректировать свой ответ, чтобы включить эту информацию. Это стоит!


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

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

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

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

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

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

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

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

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

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

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

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

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

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


4
2018-03-09 14:48



Этот ответ также интересен и не имеет значения. Благодарю. - Arthur P. R.


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

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

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

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

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


1
2018-03-07 23:53





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

Очень экстремальным примером этого являются крупные компьютеры мэйнфреймов 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 GiByte».


-1
2018-03-11 01:03