[sisyphus] ATLAS vs BLAS performance
Alexey Tourbin
=?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Пн Июн 5 11:30:37 MSD 2006
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.
Кстати в дебиане /usr/lib/libblas$suffix весит на альтернативах. Ужос!
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип : application/pgp-signature
Размер : 191 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url : <http://lists.altlinux.org/pipermail/sisyphus/attachments/20060605/124e54c0/attachment-0003.bin>
Подробная информация о списке рассылки Sisyphus