[sisyphus] ATLAS vs BLAS performance

Ivan Adzhubey =?iso-8859-1?q?iadzhubey_=CE=C1_rics=2Ebwh=2Eharvard=2Eedu?=
Пн Июн 5 11:45:24 MSD 2006


On Monday 05 June 2006 03:30, Alexey Tourbin wrote:
> On Mon, Jun 05, 2006 at 01:22:37PM +0900, Valery Pipin wrote:
> > Эта радость под g77?
> >
> > Alexey Tourbin wrote:
> > > Осталось только в сизиф это собрать, что непросто, потому что ATLAS
> > > пытается всеми силами собираться под процессор хост-системы.  Я уже
> > > понял, что там нужно отровать.  Пока идея такая: в /usr/lib собрать
> >
> > в дебиане атлас уже давно и под разные архитектуры. Можно
> > посмотреть как у них сделано.
>
> Смотрел очень внимательно как сделано в дебиане и в федоре.
> Могу рассказать, как сделано в дебиане, насклько я сам понял.
>
> Одна из проблем вот в чем: можно *в принципе* собрать библиотеку с любой
> оптимизацией, но её, быть может, нельзя будет протестировать в сборочной
> среде.  То есть можно собрать на P166MMX библиотеку с SSE2, но ясно, что
> любая проверка будет сулить обломом.  Однако же стандартная процедура
> сборки atlas собирает не только саму библиотеку, но и всякие бинари --
> мини тесты -- и тут же их запускает.
>
> В дебиане сделали вот как: сначала собрали библиотеку на P166MMX и
> сохранили лог сборки.  А потом написали скрипт -- парсер лога сборки,
> который извлекает из лога сборки команды компиляции и скармливает их
> шеллу.  Т.е. в упрощенном виде:
>
> 	./debian/ab лог_сборки_P166MMX |bash -ex
>
> За счет этого удается собирать библиотеку с произвольными (всеми
> возможными) оптимизациями.
>
> В федоре extras собрано точно так же, там просто скопировали и
> переработали debian/rules.
>
> Что я об этом думаю: я так извращаться не собираюсь.  Я буду исходить их
> того, что в сборочной среде можно выполнять SSE2 инструкции.  В этом
> случае я понял, как сделать всё более-менее нормально.  Думаю, что
> большая половина машин в нашей сборочной инфраструктуре умеет SSE2.
> (На самом деле все P4 и все атлоны64/семпроны умеют SSE2).
>
> Почему SSE2 -- может напишу в соседнем письме.  Суть в том, что под
> каждый отдельный проц пакеты плодить не надо.  Предварительный benchmark
> показывает, что от использования SSE2 по сравнению с неиспользованием
> SSE2 выигрыш почти в два раза, а от подсройки под конкретный проц (уже в
> пределах SSE2) -- порядка 10%.  К тому же с SSE2 есть готовое решение по
> части ldconfig/ld-linux.so.2.  Достаточно пложить оптимизированную
> библиотеку в /usr/lib/sse2.  А в дебиане что-то кладут в /etc/ld.so.conf.d.

Боюсь, это не остановит хардкорных "считателей" от упорной самостоятельной 
оптимизации. Меня - не остановит ;-) Но если получится хотя бы под SSE2 
оптимизировать из коробки - это уже отлично.

> Кстати в дебиане /usr/lib/libblas$suffix весит на альтернативах.  Ужос!

В Федоре еще хуже, по крайней мере насколько я вижу.

-- 
Иван



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