В ядро Linux 7.4 добавили оптимизацию AMD PerfOpt. Она позволяет встроенной графике Radeon обходить IOMMU. Видеоядро обращается к системной памяти напрямую. Так локальные языковые модели работают быстрее. Пропускная способность Llama.cpp выросла максимум на 23%.
Патч принял 24 сентября сопровождающий IOMMU Йорг Роэдель. Драйвер AMDGPU включает функцию сам. Он делает это, когда встроенная графика APU работает в режиме Identity Domain. Дискретные видеокарты не затронуты.
Причина ускорения кроется в устройстве памяти. Разработчик Netflix Боцюнь Фэн опубликовал замеры в списке рассылки. Встроенная графика читает динамически выделяемую память GTT в два-три раза медленнее, чем выделенную видеопамять. С PerfOpt задержка доступа к GTT падает до 10% от задержки выделенной памяти. У бюджетных ноутбуков резерв видеопамяти невелик. Большая модель в него не помещается. Основная часть данных уходит в GTT. Поэтому оптимизация особенно полезна в задачах ИИ.
Портал Phoronix проверил патч на трёх APU. Для этого он собрал тестовое ядро на основе Linux 7.3. Ryzen AI 9 365 показал прирост до 23%. Выросли и пропускная способность, и скорость первого токена. Чем меньше выделенной видеопамяти, тем заметнее выигрыш. Ryzen AI 5 340 с графикой Radeon 840M улучшил все результаты. Прирост начинался с 18%.
Флагман оказался в другом положении. Ryzen AI Max+ 395 тестировали в Framework Desktop. В системе стояло 64 ГБ памяти LPDDR5-8000. Типичный прирост составил всего 2-4%. В отдельных тестах без PerfOpt система даже работала быстрее.
Проверка охватила только APU на архитектуре Zen 5 с графикой RDNA 3.5. Неизвестно, получат ли функцию старые чипы. Это касается Ryzen 7040 и Van Gogh из Steam Deck. Сам патч добавляет 341 строку кода в восемь файлов. В каком виде он попадёт в стабильное ядро, пока неясно.
Для казахстанских пользователей новость полезна. Многие запускают нейросети на недорогих ноутбуках с APU. Такие машины получат максимальный выигрыш.
