LINUX.ORG.RU
ФорумTalks

[intel-gfx] Революция в производительности?


0

2

Однако phoronix запостил совершенно на первый взгляд первоапрельскую новость, про новую супер-быструю архитектуру ускорения на intel-овском драйвере.

Заглянул в xf86-video-intel - действительно, 53 килострочек с полотенцем описания. Обещают прирост скорости во многих операциях до 2 - 4 раз, (патологический случай - до 14 раз быстрее!) хотя есть и регрессии. И даже в 3d почему-то скорость поднялась (?)

World of Padman:
gen3 (800x600): 57.5 -> 96.2
gen4 (800x600): 47.8 -> 74.6

Суть - делать больше операций через 3-D hardware, а не через старый блиттер-интерфейс, который на сандибридж стал требовать всё больших затрат на синхронизацию. Второе новшество - основная работа по рендеренгу ведётся на CPU, и только в случае когда драйвер _абсолютно_ уверен в возможности аппартной акселерации на GPU (DRI and RENDER pixmaps) указанный GEM-объект переносится в видеопамять. Ещё там есть хитрый механизм подключения на лету пользовательских страниц, vmap - но он как я понимаю только на новых сандибридж-ах и работает. а вот остальное должно работать начиная с gen2 - i830

Коммит с описанием (требует патчей на Х сервер, их я пока не выудил):
http://cgit.freedesktop.org/xorg/driver/xf86-video-intel/commit/?id=bcef98af5...

sna: Introduce a new acceleration model.

PS: This depends upon the Xorg patchset «Remove the cacheing of the last scratch PixmapRec»

Upd:
http://www.mail-archive.com/xorg-devel@lists.x.org/msg21428.html



★★★★★

Последнее исправление: Andrew-R (всего исправлений: 1)

Если большая часть рендеринга- на цп, то на кой вообще видеокарта? Возвращаемся во времена 386?

Dorif ★★
()

Второе новшество - основная работа по рендеренгу ведётся на CPU, и только в случае когда драйвер _абсолютно_ уверен в возможности аппартной акселерации на GPU (DRI and RENDER pixmaps) указанный GEM-объект переносится в видеопамять.

Откуда ты этот бред выцепил?

madgnu ★★★★★
()

А я уже сегодня выпил. Теперь хоть знаю за что :)

const86 ★★★★★
()
Ответ на: комментарий от madgnu

Может ли служить объяснением нужности некоего устройства тот факт, что с его помощью можно в 14 раз быстрее ковыряться в носу и в 1.5-2 раза в попе?

r_asian ★☆☆
()

Еще немного, еще чуть-чуть...

mqspi
()

Революция в производительности!!

Теперь Intel-GFX всего в 1000 раз отстает от самой дешевой дискретной видеокарты!

zgen ★★★★★
()
Ответ на: комментарий от madgnu

Дай угадаю, у тебя PIII до сих пор?

Ты бы лучше следил за проектом libastral, глядишь обновляться не забывал бы.

r_asian ★☆☆
()
Ответ на: комментарий от madgnu

src/sna/README

Furthermore, we try very hard to avoid migrating between the CPU and GPU. Every pixmap (apart from temporary «scratch» surfaces which we intend to use on the GPU) is created in system memory. All operations are then done upon this shadow copy until we are forced to move it onto the GPU. Such migration can only be first triggered by: setting the pixmap as the scanout (we obviously need a GPU buffer here), using the pixmap as a DRI buffer (the client expects to perform hardware acceleration and we do not want to disappoint) and lastly using the pixmap as a RENDER target. This last is chosen because when we know we are going to perform hardware acceleration and will continue to do so without fallbacks, using the GPU is much, much faster than the CPU. The heuristic I chose therefore was that if the application uses RENDER, i.e. cairo, then it will only be using those paths and not intermixing core drawing operations and so unlikely to trigger a fallback.

Andrew-R ★★★★★
() автор топика
Ответ на: комментарий от Dorif

До этого бывали ситуации вида - затолкали pixmap в видеопамять, а потом оказалось что GPU нужную операцию не поддерживает - тащим назад, в системную память .... А это медленно (10Mb/s). И то, что intel-овские интеграшки UMA - ситуацию не спасало, приходилось делать полную копию, из пространства памяти которое для CPU - uncached, конечно можно было сначала вытащить в GTT, потм убрать эти страницы со свежими данными из ремаппинга к GPU, опять же настроить кэширование для CPU, получалось быстрее чем просто некэшированное чтение из видеопамяти - но всё равно медленно. Интегрированные в процессоря видеоядра, как я понимаю, могут притворятся ещё одним ядром SMP системы, с точки зрения взаимодействия кэшей, ядер и основной памяти.

Мелкие детали всегда было очень сложно рисовать чисто на GPU - оверхэд от настройки и последующего сброса состояния целого 3D-конвейера на рисование одной-двух точек, или запуск ДМА для подобных же объемов данных гораздо больше, чем просто нарисовать точки процессором, и затолкать в GPU одним махом.

Andrew-R ★★★★★
() автор топика
Ответ на: комментарий от Andrew-R

Короче: процы и гпу скоро похоже опять станут одним целым, ибо всё к тому идёт. Уран!

Dorif ★★
()

А код, однако, очень качественный. Даже с комментариями в несколько абзацев и картинками в псевдографике для описания алгоритмов.

snizovtsev ★★★★★
()
Ответ на: комментарий от radg

Видимо, 11.10 будет замечательным релизом для нетбуков: допиленный юнити/юнити2д + этот драйвер. Ждём-с.

lyset ★★★
()

Ну что. Наконец штеуд радует.

Поставил xf86-video-intel-git libdrm-git

Последний коммит на момент сборки.

http://cgit.freedesktop.org/xorg/driver/xf86-video-intel/commit/?id=bcef98af5...

GMA900, 2d стал реактивным. На 3d не расчитывал, но torcs без рывков стал идти при тех же fps (я его держал для отслеживания регрессий, когда периодически из гита дрова собирал). Так что если у кого санди бридж - пробуйте, дрова для него писались.

kraftello ★★★★★
()
Ответ на: комментарий от Dorif

>>Если большая часть рендеринга- на цп, то на кой вообще видеокарта? Возвращаемся во времена 386?


а видеокарта как бэ должна только отдавать содержимое фреймбуфера устройству отображения с необходимой синхрой. GPU как класс не нужен. нужен универсальный сопроцессор (и не один) который сможет выполнять специфичные таски.

exception13 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.