Що відрізняється від драйверів GPU від інших драйверів пристроїв, що дозволяє оптимізувати продуктивність?


12

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

Зважаючи на це, чому ми ніколи не чуємо про те, щоб AMD чи Intel налаштовували драйвери процесора для певного додатка чи версії Windows чи чогось іншого?


1
Щодо VTC: Це не неоднозначно. Існують конкретні міркування щодо того, що змінюється та чому, з драйверами GPU (та процесора).
Бен Річардс

1
Постачальники процесорів роблять оновлення версій. Дивіться, наприклад, downloadcenter.intel.com/… (натисніть прошивку в крайній правій частині)
derobert

@derobert - Цікаво, що очевидно, що Intel не має наміру повторювати фіаско Pentium. Однак ці оновлення призначені для мікрокоду процесора і не є "драйверами процесора". Мікрокод виконується на нижчому рівні, ніж машинний код файлів ядра та .exe .
тирса

@sawdust Мікрокод процесора (принаймні частково) відповідає за переклад інструкцій x86, які отримує процесор, у фактичні операції, які він виконує. Тож його насправді дещо схоже на графічні драйвери. Звичайно, Intel піклується про правильність набагато більше, ніж nVidia, тому їх оновлення, мабуть, здебільшого виправляють помилки.
derobert

Відповіді:


13

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

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

Тепер, оскільки GPU повинен приймати набори інструкцій та реалізовувати дуже складні математичні операції в апаратному забезпеченні, з'являться певні речі, які, як відомо, працюють швидше або повільніше через цей конвеєр. Частина запису драйвера для пристрою - це інтерпретація даних та інструкцій, що надсилаються на пристрій, переклавши їх, щоб пристрій міг їх зрозуміти. Коли це робить драйвер, він може приймати рішення про те, як надсилати дані на пристрій, щоб завдання займали найкоротший проміжок часу. Однак водій, як правило, не має великої кількості інформації про те, яку програму він обслуговує. Все, що він отримує від програми, - це виклики API ("намалюй лінію", "пофарбуй точку", "зафарбуй трикутник" тощо). Отже, припущення, які вона може зробити, не дуже хороші.

Коли AMD або nVidia випускає оновлення драйверів, що містить поліпшення продуктивності для конкретних ігор, це означає, що драйвер виявить, яка гра викликає графічне обладнання, і створить ряд твердо кодованих припущень, які відомі про те, як гра здійснено. Можливо, в грі є багато текстурних зображень, які потрібно швидко поміняти в пам'ять і вийти з неї, або ж це багато змішування кольорів на льоту, щоб отримати певні світлові ефекти. Зазвичай те, що буде робити гра, - це реалізація невеликих програм (званих "шейдери"), які описують, як виконувати ці обчислення, і вона буде відправлена ​​в GPU для виконання. Якщо драйвер знає, як гра використовує обладнання, він може впорядковувати дані та вибирати набори інструкцій, які виконують бажане завдання таким чином, щоб збільшити пропускну здатність та ефективність.

Однак іноді після того, як продукт буде відвантажений, в певній частині GPU можуть виявитись помилки. Це може бути досить малозрозумілим, щоб його пропустили під час перевірки, коли чіп розроблявся, але можна виявити, що він спричиняє певну помилку чи не бажану поведінку (або навіть збої) у певній грі, яка потрапляє на неї. У цьому випадку драйвер виявить цей стан баггі і обійде його, або вивантаживши якийсь обчислення на сторону процесора, або змінивши, як він подає дані в GPU, щоб він не входив у цей стан. Вони, знову ж таки, будуть випущені у вигляді оновлень драйверів.

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


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

2
@Louis Це не просто реклама. Вони пов’язані з тим, що NVidia підтримує особливі стосунки з певними ігровими студіями та пропонує розробникам допомогу в оптимізації ігрового коду для графічного обладнання NVidia. AMD робить це теж (зрідка ви бачите логотип AMD у грі), але NVidia історично мала набагато більшу присутність.
Бен Річардс

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

Ви б інтегрували це ( більше цифр ) як приклад для ще одного виграшу?
Луї Ваверу

10

"Драйвери процесора" рідко існують і, звичайно, не є модулями, що завантажуються. Епізодичний "драйвер процесора" знадобиться для деяких варіантів багатоядерного управління або управління перериваннями (наприклад, двоядерні ядра AMD потребували драйвера WinXP для повного використання). В іншому випадку більшість ОС налаштовані і вбудовані для прямого доступу до процесора. Якщо проблема з’являється і є серйозною, тоді код ядра буде виправлений і випущено оновлення ядра.

GPU вже не є периферійними пристроями; вони переросли в співпроцесори. "Драйвер GPU" не просто забезпечує доступ до пристроїв, вони включають алгоритми обробки (тобто графічні підпрограми) для GPU, упакованих у драйвер. Розмір цих "драйверів" - це роздача / підказка. Саме ці алгоритми / підпрограми вдосконалюються.


2
Це пояснює, чому завантаження драйверів для моєї картки зараз перевищує 200 Мб.
Луї Ваверу

Я дійсно сумніваюся, що в цих драйверах код вартістю 200 Мб . Я був би здивований, якби це було більше ніж жменька МБ щодо всіх цих алгоритмів. >.>
user541686

1
@Mehrdad з цікавості я відкрив інсталятор EXE на 7-zip для драйвера Nivida. папка Display.Driver має розмір 147 Мб, є один екзе, який становить 31 Мб, кожен інший файл розміром понад 660 КБ - це DLL.
Скотт Чемберлен

@Scott: Цей exe майже напевно є архівом більшої кількості файлів, що містять фактичний код. Я очікую, що фактичні файли можуть бути мегабайтами не більше ... по модулю будь-які ресурси, які вони можуть містити, які не є кодом.
користувач541686

0

Це не лише драйвери, це сам GPU. GPU спеціалізується на різних видах обчислень (наприклад, FFT) та маніпулюванні пам'яттю. Він може працювати паралельно над більшістю задач і зробити його більш ефективним, ніж процесор загального призначення.

Завдяки кращому знанню запущених програм ви можете оптимізувати процеси маніпулювання пам'яттю або обчислення для цих програм. Графічний процесор дуже універсальний в тому, як робити обчислення і виконувати маніпуляції з пам'яттю, тому ідеальну прошивку або драйвер все ще потрібно писати. ;) Є багато можливостей для вдосконалень.

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

А, забув про процесор. > _ <ЦП можна оптимізувати. Більшість нових процесорних моделей мають програмоване програмне забезпечення, але підвищення продуктивності не варто докладати зусиль. Він використовується лише для виправлення помилок у процесі збирання обладнання.


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