URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 101361
[ Назад ]

Исходное сообщение
"Патчи для ускорения MESA в ситуациях, когда производительнос..."

Отправлено opennews , 29-Янв-15 23:33 
Кристиан Хогсберг (Kristian Høgsberg), создатель проекта Wayland, также известный своими наработками по обеспечению поддержки GPU, используемых в процессорах Intel семейства Skylake, представил (http://lists.freedesktop.org/archives/mesa-dev/2015-January/...) серию патчей, которые могут заметно ускорить работу MESA в ситуациях, когда скорость работы ограничена производительностью CPU.


Изменения в основном сводятся к оптимизации реализации мьютексов. Хотя в pthreads и есть достаточно неплохая реализация, исследование показало, что, в целом, накладные расходы в ряде ситуаций могут оказаться достаточно ощутимыми. В результате разработчик подготовил оптимизированный вариант реализации с мьютексами, избегающий в ряде ситуаций выполнения системных вызовов (syscalls). Любопытным фактом является то, что новая реализация мьютексов основана на описании, фигурирующем в книге Ульриха Дреппера "Futexes Are Tricky" (http://www.akkadia.org/drepper/futex.pdf). Отмечается, что в ряде случаев, когда CPU является узким местом, увеличение производительности может составить до 10%.

URL: http://www.phoronix.com/scan.php?page=news_item&px=Kristian-...
Новость: http://www.opennet.ru/opennews/art.shtml?num=41569


Содержание

Сообщения в этом обсуждении
"Патчи для ускорения MESA в ситуациях, когда производительнос..."
Отправлено Аноним , 29-Янв-15 23:33 
Сначала повышают производительность 3D, вытесняя остальные процессы CPU, а теперь идут в обход ограничений. Нет чтобы просто сделать нормально, а не добиваться мнимой производительности путём забирания всех прерываний себе?

"Патчи для ускорения MESA в ситуациях, когда производительнос..."
Отправлено cmp , 30-Янв-15 01:27 
Сначала всякие интелы делают непонятное железо, а всякие прочие комплектуют этим железом почти 90% устройств производимых, без оглядки на оси отличные от мс.

"Патчи для ускорения MESA в ситуациях, когда производительнос..."
Отправлено Аноним , 30-Янв-15 06:39 
> Сначала всякие интелы делают непонятное железо,

Для начала, там DMA все обложено как собака блохами. Но о такой мелочи крутому эксперту-студоботу знать не дано.

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

В третьих, рыночная доля интелского интеграта далека от 100% :)


"Патчи для ускорения MESA в ситуациях, когда производительнос..."
Отправлено КЭП , 31-Янв-15 16:17 
Не DMA а NDA.
DMA это несколько другая штука.

"Патчи для ускорения MESA в ситуациях, когда производительнос..."
Отправлено burjui , 04-Фев-15 13:23 
Может, всё-таки, DMA? В контексте разговоров о прерываниях как-то больше смысла несёт.

"Патчи для ускорения MESA в ситуациях, когда производительнос..."
Отправлено Аноним , 30-Янв-15 06:26 
> мнимой производительности путём забирания всех прерываний себе?

Скажи-ка дядя, ведь не даром мозги пропил ты за амбаром?! Внимание, вопрос на миллион: где в патче с реализацией мьютексов ну хоть что-то по части работы с прерываниями? :)


"Патчи для ускорения MESA в ситуациях, когда производительнос..."
Отправлено BSA , 30-Янв-15 17:36 
Сразу видно, "профессионал" по ОС.
Сначала изучи, что такое Mutex и Futex в контексте пользователя, а затем пиши про прерывания.

"Патчи для ускорения MESA в ситуациях, когда производительнос..."
Отправлено Аноним , 30-Янв-15 06:35 
Это для всех или только для интела?
Хотя в любом случае замечательно

"Патчи для ускорения MESA в ситуациях, когда производительнос..."
Отправлено Аноним , 30-Янв-15 06:41 
> Это для всех или только для интела?

Судя по коду - вообще для всех. Этот код не специфичен для какого либо железа.


"Патчи для ускорения MESA в ситуациях, когда производительнос..."
Отправлено 123 , 30-Янв-15 11:58 
Это специфично для pthreads.
ЗЫ: Про реализацию многопоточности винда/posix и сообщения/вызовы накопилось тонны флуда.

"Патчи для ускорения MESA в ситуациях, когда производительнос..."
Отправлено Аноним , 30-Янв-15 09:25 
Очень спорная оптимизация. По сути просто перед системным вызовом futex сделал свой CAS. Конечно, теперь в uncontented-случае ему не надо заходить в ядро, но вот в случае contented... Надо пройти через 2 CAS'а, один в userspace, один в futex и потом зайти еще в ядерный вызов мьютекса.

Ускорение на 10% будет в случае, если за мьютекс никто не дерётся. Если будут драться, то он будет медленней обычных pthread_mutex:)


"Патчи для ускорения MESA в ситуациях, когда производительнос..."
Отправлено Crazy Alex , 30-Янв-15 13:33 
Ну, приличный код так и пишется, чтобы в большинстве случаев за мьютекс не дрались...

"Патчи для ускорения MESA в ситуациях, когда производительнос..."
Отправлено Аноним , 30-Янв-15 14:31 
много вы такого софта видели?:)

"Патчи для ускорения MESA в ситуациях, когда производительнос..."
Отправлено Crazy Alex , 30-Янв-15 15:57 
Да всякого хватает. Насчет качества кода месы я более-менее уверен. Ну и оптимизация в расчёте на код, написанный прямыми руками - стимул эти руки таки выравнивать.

"Патчи для ускорения MESA в ситуациях, когда производительнос..."
Отправлено Аноним , 30-Янв-15 14:11 
> Если будут драться, то он будет медленней обычных pthread_mutex:)

Так активная драка за мьютекс - по идее не есть нормальное состояние дел.


"Патчи для ускорения MESA в ситуациях, когда производительнос..."
Отправлено iZEN , 30-Янв-15 11:52 
///---http://lists.freedesktop.org/archives/mesa-dev/2015-January/...
Including <linux/futex.h> under __GNUC__ is going to break the build of
Mesa on everything compiled with clang/gcc that isn't Linux.
---///

"Патчи для ускорения MESA в ситуациях, когда производительнос..."
Отправлено Crazy Alex , 30-Янв-15 13:34 
Как по мне - так бы и надо сделать

"Патчи для ускорения MESA в ситуациях, когда производительнос..."
Отправлено тигар , 01-Фев-15 20:50 
> Как по мне - так бы и надо сделать

а как по мне - твоей маме следовало бы сделать аборт, а не рожать тебя, например;)


"Патчи для ускорения MESA в ситуациях, когда производительнос..."
Отправлено commiethebeastie , 30-Янв-15 15:56 
Быстрый код тоже часто является говнокодом.