Linux 7.4 прискорить обробку помилок пам’яті на Intel Arc Battlemage
Нові CPU binds та Ultra Low Latency Scheduling скорочують затримку копіювання на 30–40 мкс і додають кілька ГБ/с у тестах page fault. Компромісом стане вище споживання енергії.

Intel підготувала для драйвера Xe в Linux 7.4 зміни, які прискорюють роботу дискретних GPU Battlemage під навантаженнями з частими помилками сторінок пам’яті. Основні механізми називаються CPU binds і ULLS — Ultra Low Latency Scheduling — для службової черги міграції. За вимірюваннями інженерів Intel, копіювання під час безперервної обробки page fault виконується приблизно на 30–40 мікросекунд швидше.
Що таке помилка сторінки GPU
Сучасний обчислювальний застосунок працює з віртуальними адресами. Коли потрібна сторінка ще не розміщена у локальній відеопам’яті або її відображення не готове, GPU створює page fault. Драйвер повинен оновити таблиці сторінок, перемістити дані й дозволити завданню продовжити виконання. Окрема затримка здається малою, але тисячі таких подій накопичуються.
Ігри зазвичай намагаються тримати потрібні ресурси у VRAM, а тому вигода не обов’язково проявиться як помітний приріст середнього FPS. Натомість обчислювальні задачі, спільна пам’ять, великі набори даних і перевищення локальної VRAM частіше створюють потік помилок. Там швидкість обслуговування прямо впливає на пропускну здатність.
Як працює ULLS
Традиційне подання роботи через мікроконтролер GuC і керування живленням SLPC має службові накладні витрати. ULLS підтримує постійно активний пакет команд на paging engine, щоб швидше запускати операції міграції. У холодному стані GPU прискорення може бути ще більшим, оскільки не потрібно щоразу проходити повний шлях пробудження й подання.
За даними Intel, користувацькі compute-бенчмарки показали приріст у кілька гігабайтів за секунду в тестах page fault. Це результати розробника патча, а не незалежний комплексний огляд. Ефект залежить від типу задачі, кількості потоків, розміру копій і того, чи справді вузьким місцем є міграція пам’яті.
CPU binds обходять зайву чергу
Щоб ULLS мав ексклюзивний доступ до апаратного рушія підкачки, прив’язування таблиць виконується з боку CPU. Такий шлях зменшує тиск на GuC під час «шторму» помилок і відокремлює службові bind-операції від інших копій або очищення. У паралельному тесті середній час прив’язування скоротився приблизно на 15 мкс.
У гіршому випадку звичайна черга могла додавати затримку одного копіювання 2 МБ, приблизно 60–140 мкс, помножену на кількість інших потоків із page fault. Новий підхід має обслуговувати кілька помилок паралельніше й передбачуваніше, що важливо для великих обчислювальних робочих наборів.
Енергоспоживання зросте
Постійно активний пакет не є безкоштовним. Intel визнає, що ULLS споживатиме більше енергії, хоча точні вимірювання ще не опубліковані. Щоб обмежити витрати, режим завершується після періоду без нових помилок. Це компроміс між швидкою реакцією під навантаженням і переходом GPU у глибші енергозберігальні стани.
Для настільної карти приріст кількох ватів може бути незначним порівняно з загальним TDP. У ноутбуці та сервері з великою кількістю GPU навіть невелике постійне споживання має значення. Фінальна оцінка потребує тестів продуктивності на ват, а не лише абсолютної швидкості.
Коли зміни з’являться
Патчі спрямовані у DRM-Next для майбутнього вікна об’єднання Linux 7.4. Стабільний реліз очікується приблизно наприкінці грудня, якщо код пройде рецензування без критичних проблем. У наборі також є виправлення ULLS для Crescent Island та новий ідентифікатор пристрою Panther Lake.
Користувачам Arc B570 або B580 не потрібно встановлювати експериментальне ядро лише заради цієї функції, якщо система працює стабільно. Дистрибутиви додадуть Linux 7.4 за власним графіком, а частину патчів можуть перенести раніше. Для ігор слід чекати незалежних вимірювань часу кадру; найбільшу вигоду, ймовірно, отримають OpenCL, Level Zero та інші задачі з інтенсивною віртуальною пам’яттю.
Матеріал підготовлений редакцією HARDW на основі публікації Phoronix.
Відкрити оригінал на Phoronix ↗




