120

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

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

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

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

7 ответов7

123

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

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

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

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

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

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

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 при использовании плана высокой производительности (см. Диаграмму выше, HP = высокая производительность). Обновление для Windows может добавить поддержку этих функций и повысить производительность.

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. Это отменяет основную парковку. В конечном итоге у нас будет водитель, который позволит людям оставаться на равновесии и в любом случае отключить базовую парковку. Геймеры тоже этим занимались. Я оговорился здесь. Я хочу уточнить преимущество: режим высокой производительности позволяет процессору обновлять свое напряжение / тактовую частоту за 1 мс по сравнению с 30 мс, которые он принимает в сбалансированном режиме. Это то, что наш водитель сделает. Извиняюсь за путаницу!

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

6

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

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

4

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 ГиБайт».

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .