The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Уязвимости в драйвере к GPU ARM, уже применяемые для совершения атак, opennews (??), 03-Окт-23, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


90. "Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..."  +1 +/
Сообщение от maxis11 (ok), 03-Окт-23, 21:17 
В GPU (как и к сетевым адаптерам) применяется как можно меньше прослоек и проверок по доступу памяти к/из устройства дабы это все работало максимально быстро. Это косвенно можно проверить по: 1. в спеках OGL/Vulkan для части функций написано, что при неправильном их использовании(привет indirect) ОС может начать неправильно работать; 2. DRM подсистема чаще других использует DMA-API (тот же Prime, например). Почему это так нужно? Если развернуть графический стек (от запуска цикла отрисовки до вывода картинки на экран), то получается, что display controller (если мы говорим про Mali или PowerVR, то dc является отдельным блоком) должен выделять фреймбуферы (обычно используется двойная буферизация), чтобы передать их в блок GPU. У DC, как и у GPU может быть своя модель памяти (на PCI или нет, используется ли отдельный блок IOMMU или CMA и.т.д.) В свою очередь GPU сам создает кучу различной памяти внутри себя(открой графический конвейер и глянь сам) как и для взаимодействия с CPU (оно все работает асинхронно, простым mmap'ом и остановкой устройства для тоже синхронизации дело не сделаешь). Про когерентность кэшей я даже не хочу говорить. И вот этот весь стек я написал для одного приложения (и одного видео-выхода). А графических приложений (все современные DE используют аппаратное ускорение) может быть много (для этого и придумали DC, чтобы он аппаратно все blit'ил), все должны выводиться 60 фпс+ в 4k, а GPU вообще может виртуализироваться между несколькими гостевыми ОС. Мой посыл в этом всем: Васян — это ты; если тебе страшно жить в этом графическом мире, то выкинь ускоритель, так как он будет либо очень медленно работать, но "безопасно", либо в стеке постоянно будут находить дыры; комментаторам из опеннета советую учить мат часть.
Ответить | Правка | К родителю #2 | Наверх | Cообщить модератору

92. "Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..."  +/
Сообщение от Аноним333 (?), 03-Окт-23, 21:46 
О! Уважаемый, как прекрасно что есть грамотные люди! будь другом, научи!
- как познать всё то, что ты здесь описал (я реально 95% терминов таких не знаю!)?
Можешь, гайд какой-то составить? или ссылку дать на такой, если он уже существует?
ЗЫ Да, и откуда ты всё ЭТО знаешь?
Ответить | Правка | Наверх | Cообщить модератору

93. "Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..."  +/
Сообщение от Аноньимъ (ok), 03-Окт-23, 22:16 
Очень мощная техническая бурда. Так просто не осилить, нужна команда сишников чтобы разобраться.

Есть разные железки в мире графики. Но основной сути на самом деле это не меняет, поэтому будет PCI-e видеокарта в вакууме и ЦП в вакууме.

Есть память ЦП. Есть память ВК. ЦП по шине отправляет ВК команды и данные (шейдеры текстуры и вершины в основном)
Как они это делают принципиально не так то важно, ДМА там или хренуа.

Так вот, ядру ОС вообще в этом всём никакой другой роли кроме медиатора не положено.
Потому что выводить что-то на экран нужно окружению и программам, которые долбят драйвер, который всё это счастье отсылает в видеокарту.

Заметьте, в обычном линуксе, ошибка в программе использующей вулкан опенжл или что там у вас, не приводит к доступу к памяти ядра, то есть тут как бы мы считаем по умолчанию разграничение уже есть?

Ответить | Правка | К родителю #90 | Наверх | Cообщить модератору

102. "Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..."  +1 +/
Сообщение от maxis11 (ok), 03-Окт-23, 23:38 
Самое ужасное, что дьявол кроется в деталях. Рассмотрим CVE-2023-4211: если коротко, то CPU(OS) посылает команду, которая просит в вершинный конвейер запихнуть удаленные данные (можешь попробовать отправить мусорный indirect или bindless текстуры и увидеть синий экран смерти/ring timeout с последующим reset'ом/и.т.д.) Скорее всего в прошивки происходит page fault и его MMU выдает bus-адрес куда-то куда не следует выдавать, ядро это преобразовывает в виртуальный адрес и это все выдается пользователю. Потому что GPU работает в своей ОС — прошивка, которая работает на микрухе (можешь поизучать atombios, а не демагогию устраивать) со своей памятью и управление ей, управление питанием устройства, запуском кастомного кода из user-space'а (те самые шейдеры в виде IR) и.т.д. Все это дело прокидывается ей из GPU в пространстве ядра (хоть не в пространстве Intel ME/ ARM TrustZone уже хорошо). Поэтому, чтобы исправлять уязвимости, нужно исправлять все возможное неправильное поведение команд из user-space в kernel-space, так как дальше идет черный ящик, который имеет доступ к многим вещам и никак это особо не поправишь. В микроядерных ос, что я знаю, идет серьезная потеря перфы и повышенное энергопотребление из-за этого самого "ДМА там или хренуа", никуда от этого не деться. Так вот, главный смысл графического ускорителя, чтобы никакой "потери перфы" не было, как и то, чтобы у тебя рука не расплавилась держа смартфон.
Ответить | Правка | Наверх | Cообщить модератору

112. "Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..."  +/
Сообщение от Аноньимъ (ok), 04-Окт-23, 00:34 
Прошивка ВК работает на ЦП системы?
Не знал. Оно одинаково и на виндовсе и линуксе? Просто сложно себе всё это представляю, в нюансах не разбираюсь.
Мне казалось там у PCI-E довольно стандартный протокол со стандартными фичами, и в общем случае каких-то блобов на стороне ЦП ненужно.
Ответить | Правка | Наверх | Cообщить модератору

113. "Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..."  +2 +/
Сообщение от maxis11 (ok), 04-Окт-23, 01:13 
Там хуже все, в GPU есть микруха, которая управляет этим самым устройством (в PowerVR это mips, meta и недавно risc-v завезли). На нем запускается прошивка, которая по сути является микро-rtos. Помимо загрузки самой прошивки ещё и передается куча памяти, которая она сама внутри будет управлять (это все на уровне ядра). PCI-e является шиной(да, я кэп) она изоляцию делает на уровне примерно никакой. DMA нужно, чтобы синхронизировать память устройства с RAM памятью (про P2PDMA не говорю). В общем случае у тебя запускается на микрухе блоб, которая находится в PCI-e (в случае дискретной карты), прокидывается туда память (то есть там микруха, которая читает и записывает в/из RAM), и она сама себе работает. Раз уж пошла такая пьянка, то вот ещё история из моего GPU-драйверописания. В случае с закрытым драйвером все ещё хуже (а насколько понял из новости это именно он). Так как они в линуксах не могут использовать большинство API из-за GPL, то обычно они вообще пилят все свою инфраструктуру вместо использования готового (свои аллокаторы, кучи, синхронизации, и.т.д.), склеивают как-то с линуксовым ядром и выносят большую часть функционала в user-space библиотеки (дабы не делиться исходниками). Это все выглядит примерно так: вместо x + y, в программе вызывается ioctl с инициализацией x и y, которое идет в ядро. Модуль ядра берет свой написанный аллокатор поверх alloc_pages возвращает какие-то дескрипторы в структуру (в моем случае ImgTec полностью соблюдали венгерскую аннотацию, из-за чего любое название выглядело как записи чернокнижников). После этого в user-space происходит какая-то проверка и вызывается ioctl с "вызывать операцию для операторов", где ядро уже складывает x + y и возвращает сумму в x. После чего вызывается ioctl для синхронизации x, y. И в ядерном модуле вызывается уже самописные memory barrier'ы на ассемблере (спрятанные по десятком макросов). Потом программа просит ядро экспортировать хэндл x (тоже через ioctl), и наконец выводит сумму. О качестве кода такого драйвера можно догадаться (зато в стиле микроядра).
Ответить | Правка | Наверх | Cообщить модератору

145. "Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..."  +/
Сообщение от мяя (?), 04-Окт-23, 18:50 
Очень круто, спасибо за сообщения.
Ответить | Правка | Наверх | Cообщить модератору

167. "Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..."  +/
Сообщение от Аноним (-), 05-Окт-23, 14:12 
> Там хуже все, в GPU есть микруха, которая управляет этим самым устройством

Это не микруха а "IP-блок" и "сервисный процессор".

> (в PowerVR это mips, meta и недавно risc-v завезли). На нем запускается прошивка,
> которая по сути является микро-rtos.

Это все очень от производителя зависит что там и у кого.

> Помимо загрузки самой прошивки ещё и передается куча памяти, которая она
> сама внутри будет управлять (это все на уровне ядра).

Это не на уровне ядра. Это на уровне - железки. У того проца свое адресное пространство. Оно вообще может быть никак не видно хосту. Однако технически он может в принципе и хосту попытаться укатать, скажем DMA запросом, в ресурсы железки доступ же есть - значит и DMA какое зарядить могет в ряде случаев. В MALI может и не могет, не настолько продвинутое.

А так - помнится приставки как раз и вынесли через шейдеры, провоцирующие доступ в RAM со стороны GPU который патчит слегонца high-secure DRMленую бяку. И вот она уже беззубая.

> PCI-e является шиной(да, я кэп) она изоляцию делает на уровне примерно никакой.
> DMA нужно, чтобы синхронизировать память устройства с RAM памятью (про P2PDMA
> не говорю). В общем случае у тебя запускается на микрухе блоб, которая находится в PCI-e

Это все точно про ARM GPU? :D

> все свою инфраструктуру вместо использования готового (свои аллокаторы, кучи, синхронизации,
> и.т.д.), склеивают как-то с линуксовым ядром и выносят большую часть функционала
> в user-space библиотеки (дабы не делиться исходниками).

Ну вот фирма ARM довы...сь наконец. Правда вы тут прогнали основательно но вот этот кусок верный.

Ответить | Правка | К родителю #113 | Наверх | Cообщить модератору

127. "Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..."  +/
Сообщение от Аноним (1), 04-Окт-23, 10:42 
Спасибо за подробный ответ, было познавательно!

1. Не знаешь ли насколько "очень медленно работать" будет если добавить проверки?
Ну т.е. если все экраны телефонов будут вместо 60 показывать 30 кадров (или даже 20), то я бы это пережил. А если 2 кадра, то нет)

2. Правильно ли я понимаю, что rtos в управлении видяхой - это черный ящик и неизвестно даже какая там система?
Может где-то что-то утекало или ломалось?

3. На проприетарных системах проблем меньше, тк они не боятся блобов, не повязаны GPL и им не приходится делать костыли чтобы слепить все вместе?
Или у них все так же плохо?

Ответить | Правка | К родителю #102 | Наверх | Cообщить модератору

143. "Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..."  +/
Сообщение от Аноним (-), 04-Окт-23, 18:32 
> экран смерти/ring timeout с последующим reset'ом/и.т.д.) Скорее всего в прошивки происходит
> page fault и его MMU выдает bus-адрес куда-то куда не следует

У ARM вроде не настолько продвинутые GPU чтоб свой MMU еще был, это вам не амдшка.

> пользователю. Потому что GPU работает в своей ОС — прошивка, которая
> работает на микрухе (можешь поизучать atombios,

1) Atombios выполняется интерпретером на стороне драйвера, внезапно. GPU рассказывает как с ним работать таким странным способом.
2) У ARM ничего подобного вроде бы нет. Там достаточно тупенькие считалки.

> нужно исправлять все возможное неправильное поведение команд из user-space в kernel-space,
> так как дальше идет черный ящик, который имеет доступ к многим
> вещам и никак это особо не поправишь.

Но вот то что GPU особенно в больших системах могут DMA вкатить - таки могут, и единственное что их на этом пути может застопорить это IOMMU так то. Да, в принципе может быть 3 разные MMU:
1) CPU-side, это тот который права доступа CPU <-> RAM энфорсит.
2) GPU-side, то же самое но со стороны GPU. ARM вроде не настолько крутые пока, а вот у амдшек есть.
3) IOMMU, этот арбитрирует доступ железок <-> RAM. Так что отфонарный DMA pcie устройства какого в левый RAM будет зарублен с треском.

> вот, главный смысл графического ускорителя, чтобы никакой "потери перфы" не было,
> как и то, чтобы у тебя рука не расплавилась держа смартфон.

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

Ответить | Правка | К родителю #102 | Наверх | Cообщить модератору

149. "Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..."  +/
Сообщение от Аноньимъ (ok), 04-Окт-23, 21:26 
> Основная фича ускорителя в основном куча SIMD-образных крушилок

Грубо говоря основная фича в другой модели доступа к памяти, остальное детали.

ЦП оптимизирован под случайный доступ, ГП под большие однообразные куски. В принципе с АПУ неплохо стало получаться последнее время, но там фактически две разные модели доступа на уровне контроллера ОЗУ разделяемые.

Как-то это совместить идея неплохая, передавая доступ от ЦП к ГП и обратно, но сильно зависит от платформы...

Сони в своих консолях вообще неплохо сделала, было бы прикольно увидеть такое на стероидах в десктопах.
Но пока только в серверных решениях есть.

Ответить | Правка | Наверх | Cообщить модератору

174. "Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..."  +/
Сообщение от Аноним (-), 05-Окт-23, 15:41 
>> Основная фича ускорителя в основном куча SIMD-образных крушилок
> Грубо говоря основная фича в другой модели доступа к памяти, остальное детали.

Вообще-то в случае ARM и интеграшек о которых мы тут - оно как раз вынуждено делить память и шину на двоих с системным процом.

И таки то что обычный DDR оптимизирован на вот именно то - не оптимально для GPU, зато так имлементация системы дешевле. И остается только мой пойнт - про массовый SIMD оптом. Круто, да?

> ЦП оптимизирован под случайный доступ, ГП под большие однообразные куски.

Да вот видите ли ARMовским GPU и прочим интеграхам приходится довольствоваться обычным системным DDRом как раз, оптимизированным на обычные процы. GDDR ему был бы лучше но кто ж ему его даст. Это верно только для дискреток с отдельной VRAM на отдельной шине. И конечно это сильно оптимальнее, поэтому дискретки и мощнее при прочих равных в разы, отдельная шина с отдельным бандвизом и оптимизацией на вон тот доступ. Но это денег стоит, чудес не бывает. А HBM на интерпозере еще круче. И еще дороже, ага. Делать "печатку" из кремния не дешево.

> В принципе с АПУ неплохо стало получаться последнее время, но там фактически две
> разные модели доступа на уровне контроллера ОЗУ разделяемые.

GPU намноооооооого более массовый SIMD чем системный проц. У него число операций за такт куда как больше, особенно в топовых штуках.

> Как-то это совместить идея неплохая, передавая доступ от ЦП к ГП и
> обратно, но сильно зависит от платформы...

Если это про шаринг памяти, у амд по своему эффектный фокус с zerocopy CPU <-> GPU есть на APU (интеграшках) дающий бонус относительно дискреток на PCIe. Но на фоне обычного DDR RAM на всю парочку вместо GDDR или HBM у GPU это все ни о чем. Вон то тоже не совсем безопасный фокус потому что маппинг 2 адресных пространств друг в друга и ессно под контролем софта, кто ж еще знает где там какие текстуры и проч и сколько этого надо в граммах. И лажа в тех маппингах конечно же достаточно чревата.

> Сони в своих консолях вообще неплохо сделала, было бы прикольно увидеть такое
> на стероидах в десктопах.

А у них там что-то особенное было? Там вроде GPU по сути радеон обычный.

> Но пока только в серверных решениях есть.

Что есть? Я пока самое мощное что видел это HBM память для GPU - и в десктопных было тоже. Разгоняет вон то, под крупные блоки, дофига, с 4096-битной то шиной, но - дорогое, и сильно не подешевеет. А для SoC соответственно избыточное очень.

Ответить | Правка | Наверх | Cообщить модератору

151. "Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..."  +/
Сообщение от maxis11 (ok), 05-Окт-23, 02:47 
> У ARM вроде не настолько продвинутые GPU чтоб свой MMU еще был, это вам не амдшка.

Я не работал с амд на уровне допиливания прошивки (только на уровне драйвера), но сейчас занимаюсь этим для PowerVR. Именно в самой прошивки и создаются различные кучи инстансов устройства (к счастью без виртуализации она всего одна) и MMU там нужен для наложения всего этого. Предположил, что Mali +- одного класса устройства как PowerVR блоки, поэтому предположил, что и в прошивки это все реализовано. Сейчас зашел в реализацию panfrost и там действительно mmu на уровне драйвера работает (CPU), был не прав (ARM, получается, не осилили?)
> 1) Atombios выполняется интерпретером на стороне драйвера, внезапно. GPU рассказывает как с ним работать таким странным способом.

atombios взял, потому что: у них довольная солидная таблица команд, для управления микрухи (ну и прошивки которая крутится на ней) и по коду становится понятно, что там отдельный управляющий блок с отдельной rtos. В PowerVR там проще: настройка pagetable'ов как раз для MMU (по факту pool dma памяти передается по регистрам), наложение прошивки на heap устройства и, собственно, отправка адреса на начало boot секции в регистр. После этого GPU запущено.
> 2) У ARM ничего подобного вроде бы нет. Там достаточно тупенькие считалки.

Написал, что был не прав. Но вообще, свой MMU есть не только у дискретных карт, причем это далеко не новая технология. Интересно почему так.
> Основная фича ускорителя в основном куча SIMD-образных крушилок.

Очень сильное упрощение. Можно прировнять будет, только тогда, когда останется mesh-шейдеры с трассировкой лучей (при том, что аппаратный тайлинг никуда не делся). Но этого не будет, так как чистая считалка одна из многих областей применения. Для мобильных GPU на долгие годы останется хитрый конвейер (спойлер: этапов там больше, чем описаны в спеках OGL/Vulkan) с хитрым аппаратным растеризатором (ну и аппаратным тайлингом) + аппаратный (де)кодировщик. И чтобы это все быстро выключалось, а также быстро включалось (дабы экономить батарею). Поэтому набрать самый большой FLOPS не является приоритетной задачей. Нейронку тебе на мобильном GPU никто не будет запускать, для этого есть VPU/NPU блок (может сразу в камере, поэтому многие хуже работают без сладких блобов в LineageOS том же). Красивый графоний конечно нужен, но также нужно, чтобы телефон через 5 минут не вырубился. По этому пункту вы не правы.

Ответить | Правка | К родителю #143 | Наверх | Cообщить модератору

153. "Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..."  +/
Сообщение от Аноним (153), 05-Окт-23, 04:53 
Поправка: тайлинг и пастеризация это одно и тоже (лень авторизироваться).
Ответить | Правка | Наверх | Cообщить модератору

178. "Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..."  +/
Сообщение от Аноним (-), 05-Окт-23, 16:31 
> Я не работал с амд на уровне допиливания прошивки (только на уровне
> драйвера), но сейчас занимаюсь этим для PowerVR.

А тут в топике про ARMовские дизайны, у них я вообще сервисных ядер так сразу не припоминаю как минимум у старых, просто конвееры для pixel/fragment shaders, еще и деление вычислителей по типам таскали до упора.

> Именно в самой прошивки и создаются различные кучи инстансов устройства
> (к счастью без виртуализации она всего одна) и MMU там нужен для наложения
> всего этого.

Ну вот как оно у PowerVR я не знаю, помню что на них народ плевался что это почти целиком firmware-based дизайн. Он возможно даже амд в этом переплюнул. И я не совсем понимаю как такой дизайн дружественно опенсорцу забацать, если вообще все на здоровенной фирмваре держится. Какие у этих господ планы на этот счет? Я так понимаю что с таким дизайном драйвер будет иметь чертову кучу лимитов что он (не)может без изменения фирмвары. А она так и будет проприетарная же, нет?

> Предположил, что Mali +- одного класса устройства как PowerVR блоки, поэтому предположил,
> что и в прошивки это все реализовано.

У как минимум старых MALI я вообще никаких прошивок не припоминаю, у самых новых может что и пропустил, не смотрел самые новые.

> Сейчас зашел в реализацию panfrost и там действительно mmu на уровне драйвера
> работает (CPU), был не прав (ARM, получается, не осилили?)

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

> atombios взял, потому что: у них довольная солидная таблица команд, для управления
> микрухи (ну и прошивки которая крутится на ней) и по коду
> становится понятно, что там отдельный управляющий блок с отдельной rtos.

Там несколько сервисных процессоров есть. Но как я понимаю в конечном итоге драйвре команды в очередь кидает и немало действа и сам код основной части GPU устраивает (в том числе и работу с его MMU?) а сервисные процы заведуют больше вспомогаловкой. Ну скажем SMU - заведует DVFS и вентилями, насколько я помню. Фирмварь этому вообще снаружи догружают при переходе в нативный режим, там же и сетап интересных таблиц, которые могут вообще перекрыть VBIOS - OEMы любят вписывать в таблицы какую-то жесть, потом нашлепав этого жутко жалеют о содеяном и вот амд придумало для этих неудачников вбивать оверрайды в драйвер. Но я смотрел относительно поверхностно, меня в драйвере сильно некоторые баги интересовали, в основном в районе того что они с контроллером памяти делают и SMU по части вольтажей-частот.

> В PowerVR там проще: настройка pagetable'ов как раз для MMU (по факту
> pool dma памяти передается по регистрам), наложение прошивки на heap устройства
> и, собственно, отправка адреса на начало boot секции в регистр.

Простите, а MMU - чьего для начала? ARM'а? GPU? Они в PowerVR делят 1 на 2, или чего? У амд то есть MMU со стороны GPU, и даже GPU-side paging. Есть адреса и страницы - в терминах GPU, x86 про это вообще ничего не знает, кроме как драйвер видяхи. В этом плане AMD GPU по сути отдельный комп на шине. А еще IOMMU есть, он доступы железа арбитрирует, и когда разговор про MMU неплохо уточнять какого из и как это все работает. Как видите там довольно по разному бывает и вот что что а у ARM врядли есть paging на стороне GPU c адресами и страницами GPU, они не настолько разогнались чтобы по сути отдельный комп сделать.

> Написал, что был не прав. Но вообще, свой MMU есть не только
> у дискретных карт, причем это далеко не новая технология. Интересно почему так.

Кажется, по мере того как народ хочет унифицированые считалки под все и вся, оно все больше на отдельный компьютер смахивает. А вот этот процесс эволюции сильно размазан по вендорам. В этом смысле ARMовские дизайны "более винтажные" в каком-то смысле. В том плане что десктопные GPU например давно ушли от таких идей.

>> Основная фича ускорителя в основном куча SIMD-образных крушилок.
> Очень сильное упрощение. Можно прировнять будет, только тогда, когда останется mesh-шейдеры
> с трассировкой лучей (при том, что аппаратный тайлинг никуда не делся).

GPGPU compute только вон тем и пользуется например. На трассировку лучей там кстати похрен.

> (спойлер: этапов там больше, чем описаны в спеках OGL/Vulkan) с хитрым
> аппаратным растеризатором (ну и аппаратным тайлингом) + аппаратный (де)кодировщик.

Ээээ там же и декодер видео? А то обычно это отделный IP блок, вообще не связанный с вон тем. Скажем у allwinner или rockchip это 100% отдельные блоки, никак вообще с сабжем не связанные.

А пересекаются они хоть как-то разве что в Display Controller по вопросам кто в какой surface рисует и что в сумме на экран будет. В этом плане у них всех есть нечто общее: у почти всех есть некие хардварные оверлеи/слои, в основном для вывода видео за хардварным декодером как раз. При том Display Controller так то тоже отделные железки, это только в десктопных в 1 железку универсально встроено, а у ARM это независимая железка. Дизайн KMS/DRM с неких пор учел такое деление выделив render nodes vs compute nodes. И оно могет жить с вот этим, когда может быть долбилка на экран без считалок, считалка без вывода на экран, или какое-то комбо первого и второго. Так и вон то представимо, и dGPU, и даже акселераторы безголовые. Да что там вон Habana вообще NPU но тоже хочет это все юзать, потому что для счета инфраструктура и им катит в принципе.

> И чтобы это все быстро выключалось, а также быстро включалось (дабы экономить батарею).

У амд довольно забавные технологии на этот счет, но я смотрел только относительно старые, без наворотов типа BACO (bus active chip off) и проч. А так там сервисный процик очень шустро менеджит DVFS по нагрузке, со временем его даже научили в овердрафт уходить, когда можно кратковременно шпарить более чем долговременно выдерживаемый режим, но если продолжается, то снизить клок до долговременно перевариваемого, и тому подобные вещи. Но они больше на перфоманс ориентированы.

> Поэтому набрать самый большой FLOPS не является приоритетной задачей. Нейронку тебе
> на мобильном GPU никто не будет запускать, для этого есть VPU/NPU блок

Ну на мелочи это не развито. И там так то забавные TOPS иногда бывают у этих штук :)

> (может сразу в камере, поэтому многие хуже работают без сладких
> блобов в LineageOS том же).

Камера никак не поможет для других применений VPU/NPU, так что это туповатый дизайн имхо.

> Красивый графоний конечно нужен, но также нужно, чтобы телефон через 5 минут
> не вырубился. По этому пункту вы не правы.

Ээээ.... нельзя ли поподробнее на этот счет?

Ответить | Правка | К родителю #151 | Наверх | Cообщить модератору

111. "Уязвимости в драйвере к GPU ARM, уже применяемые для соверше..."  +/
Сообщение от Sw00p aka Jerom (?), 04-Окт-23, 00:33 
>Очень мощная техническая бурда.

а че вы ожидали от ЧатГопоты? софт-скилы ептить :)

Ответить | Правка | К родителю #93 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру