Як процесор можна зробити швидше за допомогою оновлення програмного забезпечення?


120

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

Виправте мене, якщо я помиляюся, але процесор повинен мати статичну прошивку, щоб бути сумісною зі стандартом x64? Якщо так, чи не доведеться AMD оптимізувати ігри (програмне забезпечення) для своїх процесорів, що, очевидно, неможливо? Що там говорити, якщо здається, що неможливо побачити основні умови?

Але я можу помилятися (сподіваюся, що так), тому питання:

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


71
Ви можете захотіти в Google термін "мікрокод".
ПлазмаHH


10
Прошивка може бути хорошою, або поганою, або просто не "хорошою для програми". x86 не визначає терміни інструкцій, тому оновлення мікропрограми (мікрокоду) для покращення термінів інструкцій не порушує сумісність x86. Є кілька потенційних причин, чому це можливо і може бути необхідним: 1) початковий мікрокод - це швидка робота і не є оптимальною; 2) початковий мікрокод спрацьовує добре, коли програма компілюється для Ryzen, але не якщо програма компільована для загального x86 або для процесора Intel, що становить більшість існуючих програм.
користувач3528438

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

4
Уявіть, що ви біжите і чомусь відмовляєтесь зігнути ліву ногу. Це зробить вас незграбним і повільним - ви можете легко збільшити швидкість бігу, ефективніше використовуючи «те саме обладнання» вашої ноги і згинаючи її більш ефективно. Зміна інструкцій "мозку" на ногу різко підвищує працездатність.
Ендерленд

Відповіді:


123

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

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

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

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

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

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


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

Ну, ви повинні прийняти цю відповідь. Ви прийшли з електроніки, тому вам здається, що вас цікавить прошивка процесора (не деякі зміни в Windows). @ ArthurP.R.
AnoE

3
@ ArthurP.R. Якщо люди з тестування встановили, що Windows не планує завдання для багатопотокових процесорів належним чином (трактує потоки як незалежні ядра), це означає, що AMD якось перекрутила дескриптори процесора / що завгодно, тому Microsoft не може їх зрозуміти. Якщо дескриптори можуть бути виправлені до стандартів Microsoft за допомогою якогось механізму оновлення, то це було б легким виправленням першого порядку. І ви поставили загальне запитання, тож це відповідає на нього. :-)
Але..ченський

Тому я прийняв вашу відповідь, навіть якщо відповідь @bwDraco вміститься і тут
Артур PR

102

Різноманітність проблем програмного забезпечення як на операційній системі, так і на рівнях застосувань викликає неоптимальну продуктивність.

Восьмиядерні процесори Ryzen складаються з двох ядерних комплексів (CCX), кожен з чотирма ядрами та 8 Мб кешу L3. Доступ до кешу L3 на різних CCX відбувається повільніше через необхідність переміщення даних далі по тканині нескінченності (фірмовий взаємозв’язок кеш-пам'яті 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 демонструє погіршення продуктивності із включеним SMT:

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

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

Результат еталону TechSpot: Deus Ex: Людство розділене


Існують також проблеми управління живленням, пов'язані з цими тестами. У тій же заяві AMD зазначається, що Windows не повністю усвідомлює нові функції в Ryzen, такі як основна парковка та швидка тактова комутація частоти. Це узгоджується з покращенням продуктивності, про які повідомляє Tom's Hardware при використанні плану високої продуктивності (див. Діаграму вище, HP = High Performance). Оновлення для Windows може додати підтримку цих функцій та підвищити продуктивність.


12
Я не впевнений, що я стежу. ОП прямо говорить, що оскільки оптимізація ігор для Ryzen на цьому етапі не викликає сумнівів, а помилки Windows - це навіть довша історія, то як ця відповідь допомагає зрозуміти, як оновлення мікропрограмного забезпечення може сподіватися на покращення продуктивності?
Але..ченські

11
Він, по суті, каже, що Windows повністю псує, як / де його виділення ниток - викликає проблеми з продуктивністю.
Подорожник Geek

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 виграє від включення високої продуктивності. Це скасовує основну парковку. Врешті-решт у нас з'явиться водій, який дозволяє людям залишатися на збалансованому та відключати основну парковку в будь-якому випадку. Геймери роблять це теж певний час. Я помиляюсь, ось. Хочу уточнити перевагу: Режим високої продуктивності дозволяє процесору оновлювати свою швидкість напруги / тактову частоту за 1 мс, порівняно з 30 мс, яку він приймає в збалансованому режимі. Це те, що зробить наш водій. Вибачення за плутанину!

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


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

np, це може бути досить абстрактно, щоб залишитися. Я слідую за Ryzen, коли я планую капітальну перебудову, тому я слідую за всі проблеми з прорізуванням зубів. Як користувач Linux я також переслідую проблеми, пов’язані з Linux. Що слід врахувати з Ryzen (і ядро ​​дзен), це це перше SMT AMD та початкові вказівки, якщо він повідомляє про логічні ядра по-іншому, ніж Intel та BIOS / Windows можуть намагатися використовувати всі "ядра" як фізичні ядра, коли половина є логічною сердечники. Це суттєво вплине на продуктивність
Найб

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

Для отримання більш детальної інформації про Ryzen ... forums.gentoo.org/viewtopic-t-1057910.html Купка нас на пошті форуму gentoo та обговорюємо, коли ми отримуємо інформацію. Наразі для Linux драйвери мобо аудіо знаходяться лише в git, аналогічно тепловим моніторам не існує ... HPET та основні проблеми викликають негайне занепокоєння. Зараз AMD повністю вибиває Intel з чистого обчислення
Найб

1
до певної міри так. Я стояв за своє твердження, що для Ryzen це каліка, тому BIOS / драйвери "пришвидшать його"
Найб

6

В основному BIOS вважається прошивкою. BIOS може вкручувати всілякі біти в апаратному забезпеченні, щоб змінити роботу системи

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


Це звучить цікаво, чи можна знайти якісь посилання на це? Було б дуже приємно, щоб деякі з них довели це людям :)

@ ArthurP.R. Між pcode, ucode (мікрокодом) та біосом, продуктивність та функціональність чіпа можуть сильно змінитися. Це все програмне забезпечення / прошивка. Джерело мудре, ні, я не можу надати вам жодних зовнішніх джерел для цієї інформації (оскільки це все є внутрішнім).
хорта

Що за гамма @horta, однак велике спасибі за цю інформацію. Не соромтесь коригувати свою відповідь, щоб вона також включала цю інформацію. Це варто!

4

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

Виправте мене, якщо я помиляюся, але процесор повинен мати статичну прошивку, щоб бути сумісною зі стандартом x64?

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

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

Однак Ryzen є новим дизайном, тому все, що було написано відповідно до інших процесорів за визначенням, не було написано для задоволення Ryzen.

Щоб значно спростити ситуацію, зображте два процесори:

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

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

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

Так відбувається з Ryzen - це нова архітектура, яку розробники програмного забезпечення ще не оптимізували, щоб відповідати характеристикам. Враховуючи час, розробники почнуть налаштовувати своє програмне забезпечення для кращої роботи. Оскільки більшість програмного забезпечення вже розроблені для роботи на процесорах Intel (зрештою, вони досить популярні!), Швидше за все, ці зміни не отримають великої користі.

Є деякі робочі навантаження, за якими Intel просто залишатиметься швидшими, а деякі, на яких Ryzen вже швидше (і все ще швидше), залежать від основної поведінки. У ситуації, яку я наводив вище, фрагмент програмного забезпечення, до якого потрібно лише додати речі, завжди буде краще на першому процесорі, а програмне забезпечення, яке просто мусить помножувати, завжди буде краще на другому - але здебільшого програмне забезпечення є складним і ці відмінності дещо вирівняються.

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

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

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


Ця відповідь також цікава і ні. Дякую.
Артур PR

1

Звичайно, програмне забезпечення може покращити продуктивність процесора або навіть GPU.

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

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

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

TL; DR: Так, програмне забезпечення може підвищити продуктивність процесора. Існує безліч способів, як-от оптимізація драйверів та прошивок, розгони тощо. Будь-яка зміна програмного забезпечення, що готує дані так, щоб їх було легше обробляти або змусити апаратне забезпечення краще реагувати на навантаження або його обмеження, швидше за все, призведе до підвищення продуктивності.


-1

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

Дуже крайнім прикладом цього є великі комп'ютери IBM з основним набором кадрів: ви можете купувати більше часу на процесорному режимі в Інтернеті, і все, що ви отримуєте, - це ліцензійний ключ, який потрібно вводити в вашу ОС, і бум !, ваша система працює швидше. Трюк простий: планувальник ОС іноді просто відмовляється від планування завдань і замість того, щоб процесор заснув замість цього, або навіть просто запустив цикл NO-OP на короткий час, щоб досягти загальної середньої пропускної здатності. Якщо ви платите за більш дорогу ліцензію, тоді планувальник видаляє ці NO-OP.

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

Аналогічно, мейнфрейми IBM розрізняють різні види процесорів: процесори Linux, процесори Java, процесори транзакцій і т.д. Java або Linux процесор. Тільки Java VM будуть заплановані до процесорів Java, і тільки VM Linux будуть призначені для процесорів Linux. Якщо ви хочете отримати більш високу ефективність транзакцій, вам доведеться купувати ліцензії для більшої кількості процесорів транзакцій: знову ж таки, це цілком ті самі процесори, різниця полягає лише у конфігураційному прапорі в планувальнику, який говорить: "Не плануйте завдання транзакцій для цих процесорів" ".

Іншим прикладом, не зовсім настільки екстремальним, є різні видання Windows. Різні видання Windows підтримують різну кількість ядер процесора та різну кількість пам'яті. Якщо у вас є велика пам’ять і велика кількість процесорів, ви можете зробити свою систему швидшою, просто перейшовши на "більшу" версію Windows. Зауважте, що видання мають точно такий же код; десь є лише якийсь перемикач конфігурації, який говорить "ви домашня версія, ви підтримуєте лише 1 процесор і 128 GiByte".

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