В ядро Linux 3.12 будет добавлена (http://dvdhrm.wordpress.com/2013/09/01/splitting-drm-and-kms.../) экспериментальная поддержка Render Nodes и Modesetting Nodes. Разработчик из RedHat Дэвид Эйрли (David Airlie), отвечающий разработку подсистемы рендеринга (DRM), уже добавил (http://cgit.freedesktop.org/~airlied/linux/commit/?id=179312...) данный код в дерево drm-next, которое позднее войдет в состав ядра Linux версии 3.12.
Из наиболее очевидных преимуществ данной технологии называется возможность выполнения GPGPU-вычислений без требования к наличию активного дисплея и/или композитного сервера, а также возможность более гибкого управления правами доступа. В настоящее время все операции рендеринга и смены видеорежимов делаются через один и тот же интерфейс, что накладывает ряд ограничений на управление правами доступа. В частности, это приводит к ситуации когда права на любую операцию ускорения рендеринга и права на переключение видеорежимов не могут выставляться независимо.
Кроме того, в отличие от традиционных GPU, в SoC на основе ARM переключение видеорежимов зачастую может осуществляться иным устройством нежели устройством используемым для ускорения рендеринга, что создает дополнительные проблемы при реализации видеодрайверов для таких SoC. Кроме того, это может требовать запуска X-сервера с правами root. Также невозможно, например, запустить два разных дисплейных сервера, один из которых заведовал бы одним видеовыходом, а другой - другим. Указанный патч устраняет данные проблемы.
Работа была выполнена Дэвидом Германом (David Herrmann) в рамках программы GSoC. Смысл инициативы в основном сводится к тому чтобы расщепить существующие в данный момент "монолитные" устройства вида /dev/dri/card{num} на 2 подтипа устройств: Rendering Nodes (/dev/dri/renderD{num}) и ModeSetting Nodes (/dev/dri/modeset{num}). Первые устройства по своей сути являются по выражению Грега Кроа-Хартмана "большими FPU" и отвечают за аппаратное ускорение рендеринга сцен и обсчета вычислительных заданий GPGPU.
Rendering Nodes позволят проводить вычисления на GPU или рендеринг без вывода на экран (например, для того чтобы вывести его на экран силами иного GPU). Это позволяет ПО использовать вычислительные мощности GPU не предполагая при этом взятие на себе полной ответственности за переключение видеорежимов данного GPU. Устройства ModeSetting Nodes отвечают за выставление видеорежимов и подобную активность.
С точки зрения видеодрайверов, становится возможным публиковать устройства которые делают только рендеринг, но не имеют своего видеовыхода, а также устройства "контроллер дисплея", которые умеют производить видеовывод и переключение режимов, но не обладают собственной инфраструктурой ускорения рендеринга. Обмен между устройствами предлагается делать путем использования DMA-BUF.URL: http://www.phoronix.com/scan.php?page=news_item&px=MTQ0OTI
Новость: http://www.opennet.me/opennews/art.shtml?num=37797
Иными словами, это позволит существовать переключению видеокарт на лету и прочим плюшкам?
Я бы сказал, что теоретически позволит запускать всякие cgminer'ы без иксов.
> Я бы сказал, что теоретически позволит запускать всякие cgminer'ы без иксов.И это тоже. Однако в целом это похоже на попытку отвязать "вычислялки-ускорялки" от "а я вот на экран умею выводить".
Нынче появились такие чудеса как headless GPU, когда GPU не имеет ни одного разведенного на плате видеовыхода и должен сбагривать картинку тому у кого видеовыход есть. А этот кто-то может быть как относительно мозгастым GPU (в нотиках), так и довольно глупым контроллером, который умеет что-то типа сплевывания фреймбуфера на экран и более совсем нифига (в ARM такой периферии - есть). Попытка представить такие штуки как "видеокарту", у которой есть как GPU так и видеовыходы - работает не совсем хорошо, как несложно догадаться, т.к. оно "не совсем видеокарта" в ее привычном понимании :).
>[оверквотинг удален]
> от "а я вот на экран умею выводить".
> Нынче появились такие чудеса как headless GPU, когда GPU не имеет ни
> одного разведенного на плате видеовыхода и должен сбагривать картинку тому у
> кого видеовыход есть. А этот кто-то может быть как относительно мозгастым
> GPU (в нотиках), так и довольно глупым контроллером, который умеет что-то
> типа сплевывания фреймбуфера на экран и более совсем нифига (в ARM
> такой периферии - есть). Попытка представить такие штуки как "видеокарту", у
> которой есть как GPU так и видеовыходы - работает не совсем
> хорошо, как несложно догадаться, т.к. оно "не совсем видеокарта" в ее
> привычном понимании :).Ты только что описал 3DFX Voodoo! :-)
> Ты только что описал 3DFX Voodoo! :-)Я описал GPU в некоторых ноутах и SoC на основе ARM. А трупик 3DFx пусть насилуют те кому это надо, я понятия не имею и уже не буду иметь о том как сие устроено. Намного интереснее изучить как современные GPU делают чем какой-то древний окаменелый крап.
Nvidia Tesla, uptime 7 years!
> Nvidia Tesla, uptime 7 years!Мне пофигу на твою теслу. Майнинг биткоинов и крякинг хэшей - на моем стобаксовом AMDшном GPU работает мягко говоря не хуже. А вот стоит оно дешевле в разы и жрет в разы меньше электричества. Поэтому свою теслу можешь на стенку приколотить, если хочешь.
Правда майнинг - пока с проприетарой, увы (но ж...а чует что скоро и в вычислениях проприетари будет амба - майнинг по минимуму на открытом драйвере уже продемонстрировали).
>> Nvidia Tesla, uptime 7 years!
> Мне пофигу на твою теслу.TOP500 срал на тебя и твои нищекоины.
> TOP500 срaл на тебя и твои нищекоины.А мне какое до этого дело? У этих денег много, там счет на миллионы идет, им переплатить плюс-минус пару лямов по жизни не западло. Тем не менее, есть подозрения что амдшники переделали архитектуру на GCN и активно пилят вычисления в открытом драйвере вовсе не для красоты.
> Намного интереснее изучить как современные GPU делают чем какой-то древний окаменелый крап."Тот, кто не знает историю, обречён повторять её ошибки".
Так расскажите же нам об ошибках в 3dfx Voodoo, и какие-такие грабли тех времён до сих пор не потеряли актуальность.
> Так расскажите же нам об ошибках в 3dfx Voodoo, и какие-такие грабли
> тех времён до сих пор не потеряли актуальность.Разве что темп конкуренции не вытянули и продались невидии, продув рынок который сами же и создали. Но к сабжу это никак не относится.
Была история c glide - аналог opengl/direct3d. Закрытое vendor lock решение. Поддержка opengl/direct3d была хуже, чем glide. Nvidia сумела этим воспользоваться. Теперь сама nvidia чуть не наступила на теже грабли с cuda.
А почему "чуть"?
Наверное в nvidia тоже про эту историю помнят:
cuda - открыли, opencl - подтянули.P.S. Надеюсь что еще через десять лет, я буду вспоминать байку, про то как nvidia вовремя datasheet'ы не открыла и открытому драйверу не помогла ;)
> cuda - открыли,Интересное понимание открытости у этих проприерасов: работает только с вагоном нвидиевского блобья в драйвере. Такая "открытость", конечно...
> opencl - подтянули.
До какой версии хотя-бы?
> Была история c glide - аналог opengl/direct3d. Закрытое vendor lock решение.а d3d у нас, стало быть, весь такой открытый и вендор-отлоченый.
Я так и делаю. Но есть проблема. Если я прописываю тройку в "Дополнительные параметры" openSUSE и запускается консоль (init 3), cgminer не находит видеокарту. Но если я запущу и закрою иксы, то всё работает из консоли! "modprobe nvidia" пробовал - наверное, этого не достаточно. И да, это работает только на NVIDIA, а на ATi cgminer не запускается даже с моей интегрированной Radeon HD 3200, в упор не видя Radeon HD 5850. Поэтому нужно взять и подключить и к ней тоже монитор, и если открыть Konsole на нём, вот только тогда cgminer запускается. Нужно попробовать драйвер 13.4, там в Release Notes что-то про это было.
> Я так и делаю. Но есть проблема.С проблемами в проприетарных драйверах - вам явно не сюда.
Для 5850 пропиши фейковый дисплей 640*480 в конфиге иксов.
> Я так и делаю. Но есть проблема. Если я прописываю тройку в
> "Дополнительные параметры" openSUSE и запускается консоль (init 3), cgminer не находит
> видеокарту. Но если я запущу и закрою иксы, то всё работает
> из консоли! "modprobe nvidia" пробовал - наверное, этого не достаточно.nvidia-persistenced --persistence-mode --user root
Без иксов всё нормально майнит, без мониторов видит прекрасно все 2 видюхи.
Дрова 13.8-beta2 ядро 3.0.94.
Иксы стартую только чтоб разогнать через aticonfig и тут же убиваю.
> Иксы стартую только чтоб разогнать через aticonfig и тут же убиваю.Стоп, так майнеры типа cgminer сами умеют оверклок. Он при этом что, не работает?
> Я бы сказал, что теоретически позволит запускать всякие cgminer'ы без иксов.А сейчас типа нельзя? Читайте RFM и больше так не позорьтесь, все такие место публичное.
если брать конкретно OpenCL то там иксы и так не нужны.
у меня так bfgminer работает на проприетарных дровах без иксов. тока для разгона частот запускаю на пару секунд второй xserver батч файлом в автозагрузке.
В том числе и это по идее. Например, можно рендерить графику на "безголовом" GPU не снабженном каким либо видеовыводом а картинку выплюнуть на того кто умеет рисовать. При том рисовальщик может и не иметь собственного акселератора рендеринга (у ARM контроллер дисплея может быть весьма тривиальной железкой которая умеет только "глупый" вывод фреймбуфера на экран и более нифига).
класс !!
Вот и видеоподсистема в линуксе начинает набирать силу.
> Вот и видеоподсистема в линуксе начинает набирать силу.DRM+KMS уже довольно давно выглядит вполне разумной и мощной штукой. А то что для подгона под существующие реалии приходится дорабатывать напильником по месту в каком-то таком духе - ну да, есть такое дело...
Наконец-то, можно будет рендерить композитор на APU, приложения на дискретке и выводить результат через какой-нибудь DisplayLink вместо нагороженных сейчас костылей.
> Наконец-то, можно будет рендерить композитор на APU, приложения на дискретке и выводить
> результат через какой-нибудь DisplayLink вместо нагороженных сейчас костылей.Действительно ни каких костылей, не то что раньше - из под доса картинки рисовали прямой записью в видео память ;)
> картинки рисовали прямой записью в видео память ;)Ага, порисуй прямой записью в видеопамять дисплейлинку на usb :). Правда я не совсем понимаю чья же это будет память. Наверное не видеоадаптера, т.к. в USB самом по себе нет такого понятия как DMA в память девайса "на той стороне провода". Оно может быть подперто и с той и с другой стороны DMA двигунами, конечно, но - как работа с usb и передача пакетов, а не ...
>> картинки рисовали прямой записью в видео память ;)
> Ага, порисуй прямой записью в видеопамять дисплейлинку на usb :). Правда я
> не совсем понимаю чья же это будет память. Наверное не видеоадаптера,
> т.к. в USB самом по себе нет такого понятия как DMA
> в память девайса "на той стороне провода". Оно может быть подперто
> и с той и с другой стороны DMA двигунами, конечно, но
> - как работа с usb и передача пакетов, а не ...man RDMA
> man RDMAman EHCI/OHCI/UHCI/XHCI для начала. Там довольно много софту дергаться придется. Ибо это по сути сеть.
Сейчас в DisplayLink вывод идёт через фреймбуфер, тоже своего рода прямая запись. Только вот всякие иксы его принимают за видеокарту без никакого ускорения. Давно пора отделить ускорялки от видеовыводов. В интернет видео стримать же научились, почему бы не стримать на собственной железке куда и откуда вздумается?
Хм.
С каким-нибудь 3.13 может и нвидиа почешется и оптимус заработает таки....
> Разработчик из RedHat Дэвид Эйрли (David Airlie), отвечающий разработку подсистемы рендеринга (DRM)Так вот почему David Airlie не обновляет свои патчи для работы иксов без root! Потому что он, оказывается, работает в Red Hat! Почитал как-то разработчиков GNOME (работающих в Red Hat), они написали список недостатков иксов, которых не будет в Wayland (разрабатываемом Red Hat). Среди них была невозможность работы иксов без прав root! Меня это возмутило и я решил написать гневный комментарий, приложив патчи. Но патчи оказались давно не обновлены. И мне было непонятно, чего это Дэвид их не обновляет?! Теперь понял.
Но почему вы скрыли важные детали, а именнно жидомасонские корни этого заговора, в свою очередь управляемого рептилоидом внутри Концентрирующей Пирамиды? Не пытайтесь нас развести выдавая полуправду, это бесполезно. Наши шапочки из фольги 0.1 мм а в военное время доходят то 0.3 мм.
Так почему David Airlie не обновляет свои патчи для работы иксов без root?
Зенитур является ярким примером того, что анонимность без изменения стиля речи - ничто.
Да ладно, вон выше User264 поярче будет.
> Да ладно, вон выше User264 поярче будет.Во первых, 294 все-таки. Во вторых - он написал новость в которой вы оффтопить изволите.
> Во первых, 294 все-таки. Во вторых - он написал новость в которой
> вы оффтопить изволите.И еще про доработку Mesa и драйвер для чипов Intel.
p.S: Вспоминай пароль, тебя тут помнят и узнают :)
Я бы попросил на Дывида не гнать. Он сделал для графического стека линукса больше чем все анонимусы опеннета вместе взятые.
> Я бы попросил на Дывида не гнать. Он сделал для графического стека
> линукса больше чем все анонимусы опеннета вместе взятые.А Дывид воздухом питался всё это время, или всё таки деньгами этих самых анонимусов?
> А Дывид воздухом питался всё это время, или всё таки деньгами этих
> самых анонимусов?Очень интересно как анонимусы платили Дэвиду. Сомнительно что все эти анонимусы такие уж прямо активные покупатели редхата.
> Так вот почему David Airlie не обновляет свои патчи для работы иксов
> без root! Потому что он, оказывается, работает в Red Hat!Какая интересная теория заговора :). Ну вот вы и делайте патчи как вам угодно, работая там где вам удобно. В вашем праве.
В правильном направлении движутся товарищи. Вообще, по идее конроллёр вывода на экран должен быть вделан прямо в материнку. А мощные 3D-ускорители вовсе не обязательно должны иметь подобный контроллер. Особенно, если их в системе несколько, а картинка выводится только на один монитор(одним адаптером).
> В правильном направлении движутся товарищи. Вообще, по идее конроллёр вывода на экран
> должен быть вделан прямо в материнку. А мощные 3D-ускорители вовсе не
> обязательно должны иметь подобный контроллер. Особенно, если их в системе несколько,
> а картинка выводится только на один монитор(одним адаптером).Вы только что описали устройство некоторых ноутбуков...
> Вы только что описали устройство некоторых ноутбуков...Некоторые устройства на ARM тоже используют подобный подход. Да и подобный подход оправдан не только для ноутбуков. Так, на серверах могут быть полезны GPU,но абсолютно не нужны адаптеры для вывода картинки на дисплей. Разделение двух разных сущностей - это хорошая практика.
а вообще, если вспомните/почитаете - самые первые 3Д ускорители не имели никаких видеовыходов, и были дополнением к уже имеющимся видео адаптерам. Ура универсальным и производительным шинам/протоколам.
По большому счёту, на материнке не должно быть никаких контроллеров периферии, кроме USB3.x.
> По большому счёту, на материнке не должно быть никаких контроллеров периферии, кроме
> USB3.x.Уж не знаю как в остальных областях, в alsa-devel до сих пор обсуждают usb-audio, как все же правильно выбирать размер очереди и буферов, чтоб и задержка низкая и асинхронности не было и не глючило.
> По большому счёту, на материнке не должно быть никаких контроллеров периферии,
> кроме USB3.x.Ага, а еще 640Кб - хватит всем, 96 DPI у всех мониторов мы в DE прямо захардкодим, и вообще в мире есть только х86 и винда, правда? :)
Мода на 100500 бесполезных контроллеров на материнской плате пошла с топовых компов под игрулечки, которые под венду.
Может лучше Thunderbolt?
"возможность выполнения GPGPU-вычислений без требования к..."
интересно каков список этих самых GPU...
> интересно каков список этих самых GPU...На данный момент - претендентами выглядят как минимум амд, нвидия и интель. Впрочем, не вижу чем таким пихание программ-шейдеров в ARMовские GPU так уж принципиально отличается.
>> интересно каков список этих самых GPU...
> На данный момент - претендентами выглядят как минимум амд, нвидия и интель.почти всегда были только вторые и за ними первые... интел дружно кивнут как всегда и продолжают пилить по-своему...
> Впрочем, не вижу чем таким пихание программ-шейдеров в ARMовские GPU так
> уж принципиально отличается.почти поголовной закрытостью последних...
Может уже можно будет наконец сделать dualseat на одной видеокарте?