[devel] Оптимизированные для i686 и выше библиотеки.

Alexey Tourbin at на altlinux.ru
Пт Сен 3 18:04:21 UTC 2010


On Fri, Sep 03, 2010 at 08:24:31PM +0300, Alexander Bokovoy wrote:
> 2010/9/3 Alexey Tourbin <at на altlinux.ru>:
> > Я и говорю, давайте покажем, чего мы добиваемся.  А то понимаешь развели
> > тут тред, оптимизированные для i686 библиотеки.  Можно подумать за это
> > на премию можно выдвинуть.  Пробуешь разобраться, спрашиваешь людей,
> > сколько у вас процентов вышло?  Люди подозрительно молчат, mike спрашивает
> > "тебе жалко что ли"?  thresh хотя бы честно замерил и написал, что там
> > выходит около одного процента в лучше случае (а на атомах - меньше).
> > Мне не жалко, но просто страдать по этому поводу я не собираюсь - нет смысла.
> В MeeGo долго энтузиасты пытались убедить товарищей из Интела, что
> нужно поддерживать что-нибудь, не поддерживающее SSSE3 (ниже
> Core2Duo). Интел, понятное дело, гнет свою палку. Phoronix в мае делал
> сравнение четырех дистрибутивов на нетбуке, для меня единственным
> значимым различием было почти четырехкратное ускорение загрузки
> дистрибутива по сравнению с Fedora 13 (8 секунд против 23), но это

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

> скорее заслуга btrf и меньшего количества сервисов, чем аппаратного
> ускорения. Сравнение делалось на одном и том же нетбуке.
> http://www.phoronix.com/scan.php?page=article&item=meego_10_perf&num=1

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

> Однако тут важным моментом будет наличие грамотно векторизующего
> компилятора. Интеловский компилятор в среднем позволяет отбить 13-15%
> при соблюдении ряда специальных манипуляций с кодом (прагмы и проч.),
> вырастая и в два-три раза при удачных случаях. Но некоторые из этих

Отбить 13% я ещё готов поверить, но в 2-3 раза?
Это чо-то какой-то загон очень большой.

> оптимизаций были добавлены только в GCC 4.5 и все равно они уступают
> интеловскому компилятору. А ручной оптимизации уступает все подряд.
> 
> Это я к тому, что поднимать планку базовой платформы, конечно, можно,
> но я бы лучше сконцентрироваться на нахождении неоптимизированных
> фрагментов кода и их исправлять. А уж потом и вручную оптимизировать
> для конкретной микроархитектуры.
> 
> Сегодня коллега ускорил в три с половиной раза собственный код:
> http://maemo.gitorious.org/meego-image-editor/libquill/commit/aba7db8a8fcb8474d9107dcd9e142f18d07b51bf,
> как можно увидеть, никакими аппаратными оптимизациями там и не пахнет.
> Это при том, что и так чтение thumbnail было в рамках приличия.

Ну вот понимаешь, ты говоришь "в три с половиной раза", тебе самому
не смешно?  Процессор это же не конь в вакуме, он тянет данные с
мемори-контроллера, для обработки изображений ему нужно тянуть очень
много.  Сейчас такты стоят дешевле чем гонять данные по шине.
Я не понял этот коммит, он у меня плохо отображется.  Нельзя ли его
представить в виде diff?

> Практика показывает, что верить в "у нас тут код вручную оптимизирован
> под SSE" на x86 микроархитектурах становится крайне неблагодарным
> занятием. Микроархитектуры плывут по поддерживаемому функционалу и
> особенности их реализации иногда убивают все прошлые оптимизационные
> заслуги.
> 
> -- 
> / Alexander Bokovoy


Подробная информация о списке рассылки Devel