Видеокарты Intel сделали в 100 раз быстрее при трассировке лучей — в драйверах просто исправили ошибку
Разработчики драйверов графических процессоров Intel для Linux выпустили обновление, которое повышает производительность в трассировке лучей в 100 раз. До этого видеокарты работали 100 раз медленнее из-за ошибки в программном коде драйвера, которая приводила к неправильному распределению памяти в системе.
О включении исправления в драйвер Intel Mesa Vulkan с открытым исходным кодом сообщил портал Phoronix. Ошибку в коде драйвера обнаружил один из инженеров графических драйверов Intel для Linux Лайонел Ландверлин (Lionel Landwerlin), опубликовавший данные о ней в открытом репозитории GitHub Mesa. Как пояснил инженер, прежде реализации трассировки лучей Vulkan использовала внешнюю системную память (ОЗУ, подключаемую к материнской плате) вместо локальной памяти GDDR6 видеокарты. В драйвере отсутствовала одна строка кода, которая отвечала бы за перераспределение памяти для выполнения этой задачи. Таким образом, драйвер Vulkan перемещал данные трассировки лучей в более медленную внешнюю системную память и обратно, что и приводило к замедлению работы.
Результатом добавления нужной строки кода, а именно команды ANV_BO_ALLOC_LOCAL_MEM, стало 100-кратное повышение производительности трассировки лучей на видеокартах Intel при использовании API Vulkan.
По данным Phoronix, внесённые в код драйвер изменения уже утверждены и появятся со следующим релизом программного обеспечения Mesa 22.2. Последнее в свою очередь будет внедрено в пакет других усовершенствований драйверов Linux, которые станут доступны конечным пользователям к концу августа.