ALT Linux Sisyphus discussions
 help / color / mirror / Atom feed
* [sisyphus] ATLAS vs BLAS performance
@ 2006-06-04 21:05 Alexey Tourbin
  2006-06-04 22:04 ` Ivan Adzhubey
  0 siblings, 1 reply; 17+ messages in thread
From: Alexey Tourbin @ 2006-06-04 21:05 UTC (permalink / raw)
  To: sisyphus

[-- Attachment #1: Type: text/plain, Size: 325 bytes --]

Я разобрался, как надо собирать ATLAS.
Вот предварительный benchmark.

Fortran BLAS:

> mm <- matrix(rnorm(10^6), ncol = 10^3)
> system.time(crossprod(mm))
[1] 1.572 0.004 1.580 0.000 0.000

ATLAS w/ SSE2:

> mm <- matrix(rnorm(10^6), ncol = 10^3)
> system.time(crossprod(mm))
[1] 0.344 0.020 0.369 0.000 0.000

[-- Attachment #2: Type: application/pgp-signature, Size: 191 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [sisyphus] ATLAS vs BLAS performance
  2006-06-04 21:05 [sisyphus] ATLAS vs BLAS performance Alexey Tourbin
@ 2006-06-04 22:04 ` Ivan Adzhubey
  2006-06-04 22:26   ` Alexey Tourbin
  0 siblings, 1 reply; 17+ messages in thread
From: Ivan Adzhubey @ 2006-06-04 22:04 UTC (permalink / raw)
  To: Sisyphus

On Sunday 04 June 2006 17:05, Alexey Tourbin wrote:
> Я разобрался, как надо собирать ATLAS.
> Вот предварительный benchmark.
>
> Fortran BLAS:
> > mm <- matrix(rnorm(10^6), ncol = 10^3)
> > system.time(crossprod(mm))
>
> [1] 1.572 0.004 1.580 0.000 0.000
>
> ATLAS w/ SSE2:
> > mm <- matrix(rnorm(10^6), ncol = 10^3)
> > system.time(crossprod(mm))
>
> [1] 0.344 0.020 0.369 0.000 0.000

А вот с GotoBLAS 1.2 (P4 2.8GHz, R 2.3.0):

> mm <- matrix(rnorm(10^6), ncol = 10^3)
> system.time(crossprod(mm))
[1] 0.232 0.012 0.270 0.000 0.000


-- 
Иван


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [sisyphus] ATLAS vs BLAS performance
  2006-06-04 22:04 ` Ivan Adzhubey
@ 2006-06-04 22:26   ` Alexey Tourbin
  2006-06-05  1:17     ` Alexey Tourbin
                       ` (2 more replies)
  0 siblings, 3 replies; 17+ messages in thread
From: Alexey Tourbin @ 2006-06-04 22:26 UTC (permalink / raw)
  To: sisyphus

[-- Attachment #1: Type: text/plain, Size: 1805 bytes --]

On Sun, Jun 04, 2006 at 06:04:54PM -0400, Ivan Adzhubey wrote:
> On Sunday 04 June 2006 17:05, Alexey Tourbin wrote:
> > Я разобрался, как надо собирать ATLAS.
> > Вот предварительный benchmark.
> >
> > Fortran BLAS:
> > > mm <- matrix(rnorm(10^6), ncol = 10^3)
> > > system.time(crossprod(mm))
> >
> > [1] 1.572 0.004 1.580 0.000 0.000
> >
> > ATLAS w/ SSE2:
> > > mm <- matrix(rnorm(10^6), ncol = 10^3)
> > > system.time(crossprod(mm))
> >
> > [1] 0.344 0.020 0.369 0.000 0.000
> 
> А вот с GotoBLAS 1.2 (P4 2.8GHz, R 2.3.0):
> 
> > mm <- matrix(rnorm(10^6), ncol = 10^3)
> > system.time(crossprod(mm))
> [1] 0.232 0.012 0.270 0.000 0.000

model name      : AMD Athlon(tm) 64 Processor 3200+
cpu MHz         : 2050.186
cache size      : 512 KB

R-2.3.1

Похоже, что процессор у Вас помощнее.  Суть в том, что разница будет
если и заментной, то не значительной.  Учитывая то, что ATLAS -- это
free software, а GotoBLAS -- проприетарный софт, то агитирую за ATLAS. :)

Осталось только в сизиф это собрать, что непросто, потому что ATLAS
пытается всеми силами собираться под процессор хост-системы.  Я уже
понял, что там нужно отровать.  Пока идея такая: в /usr/lib собрать
библиотеки с generic-оптимизацией на основе пресетов от PII; а в
/usr/lib/sse2 собрать библиотеки с оптимизацией на основе пресетов
от P4SSE2.  По идее, ldconfig и/или ld-linux.so.2 смогут разрулить такую
ситуацию как надо, примерно так же, как в случае с /lib и /lib/i686.
Ну да это уже мои проблемы.

В общем, если это будет работать из коробки как надо и если по сравнению
с GotoBLAS разница будет не хуже, чем в полтора раза, тогда я буду
доволелен.  Потому что основной разрыв по сравнению с фортраном всё
равно ликвидирован, а 10-20% на практике редко что решают.

Посмотрим...

[-- Attachment #2: Type: application/pgp-signature, Size: 191 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [sisyphus] ATLAS vs BLAS performance
  2006-06-04 22:26   ` Alexey Tourbin
@ 2006-06-05  1:17     ` Alexey Tourbin
  2006-06-05  2:41       ` Alexey Tourbin
  2006-06-05  4:22     ` Valery Pipin
  2006-06-05  6:19     ` Andrey Khavryuchenko
  2 siblings, 1 reply; 17+ messages in thread
From: Alexey Tourbin @ 2006-06-05  1:17 UTC (permalink / raw)
  To: sisyphus

[-- Attachment #1: Type: text/plain, Size: 1438 bytes --]

On Mon, Jun 05, 2006 at 02:26:30AM +0400, Alexey Tourbin wrote:
> On Sun, Jun 04, 2006 at 06:04:54PM -0400, Ivan Adzhubey wrote:
> > On Sunday 04 June 2006 17:05, Alexey Tourbin wrote:
> > > Я разобрался, как надо собирать ATLAS.
> > > Вот предварительный benchmark.
> > >
> > > Fortran BLAS:
> > > > mm <- matrix(rnorm(10^6), ncol = 10^3)
> > > > system.time(crossprod(mm))
> > >
> > > [1] 1.572 0.004 1.580 0.000 0.000
> > >
> > > ATLAS w/ SSE2:
> > > > mm <- matrix(rnorm(10^6), ncol = 10^3)
> > > > system.time(crossprod(mm))
> > >
> > > [1] 0.344 0.020 0.369 0.000 0.000
> > 
> > А вот с GotoBLAS 1.2 (P4 2.8GHz, R 2.3.0):
> > 
> > > mm <- matrix(rnorm(10^6), ncol = 10^3)
> > > system.time(crossprod(mm))
> > [1] 0.232 0.012 0.270 0.000 0.000
> 
> model name      : AMD Athlon(tm) 64 Processor 3200+
> cpu MHz         : 2050.186
> cache size      : 512 KB

> В общем, если это будет работать из коробки как надо и если по сравнению
> с GotoBLAS разница будет не хуже, чем в полтора раза, тогда я буду
> доволелен.  Потому что основной разрыв по сравнению с фортраном всё
> равно ликвидирован, а 10-20% на практике редко что решают.

А вот ATLAS без оптимизации под P4SSE2:

> mm <- matrix(rnorm(10^6), ncol = 10^3)
> system.time(crossprod(mm))
[1] 0.584 0.012 0.624 0.000 0.000

Почти в два раза хуже, чем с SSE2 (но почти в три раза лучше, чем
фортран).  Значит стоит делать /usr/lib/sse2.

[-- Attachment #2: Type: application/pgp-signature, Size: 191 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [sisyphus] ATLAS vs BLAS performance
  2006-06-05  1:17     ` Alexey Tourbin
@ 2006-06-05  2:41       ` Alexey Tourbin
  0 siblings, 0 replies; 17+ messages in thread
From: Alexey Tourbin @ 2006-06-05  2:41 UTC (permalink / raw)
  To: sisyphus

[-- Attachment #1: Type: text/plain, Size: 1979 bytes --]

On Mon, Jun 05, 2006 at 05:17:09AM +0400, Alexey Tourbin wrote:
> > > > ATLAS w/ SSE2:
> > > > > mm <- matrix(rnorm(10^6), ncol = 10^3)
> > > > > system.time(crossprod(mm))
> > > >
> > > > [1] 0.344 0.020 0.369 0.000 0.000
^^^^^^^^^^^^^^^^^

> > > А вот с GotoBLAS 1.2 (P4 2.8GHz, R 2.3.0):
> > > 
> > > > mm <- matrix(rnorm(10^6), ncol = 10^3)
> > > > system.time(crossprod(mm))
> > > [1] 0.232 0.012 0.270 0.000 0.000
> > 
> > model name      : AMD Athlon(tm) 64 Processor 3200+
> > cpu MHz         : 2050.186
> > cache size      : 512 KB
> 
> > В общем, если это будет работать из коробки как надо и если по сравнению
> > с GotoBLAS разница будет не хуже, чем в полтора раза, тогда я буду
> > доволелен.  Потому что основной разрыв по сравнению с фортраном всё
> > равно ликвидирован, а 10-20% на практике редко что решают.
> 
> А вот ATLAS без оптимизации под P4SSE2:
> 
> > mm <- matrix(rnorm(10^6), ncol = 10^3)
> > system.time(crossprod(mm))
> [1] 0.584 0.012 0.624 0.000 0.000

А вот собранный под Athlon64 (HAMMER32SSE2, т.е. ближе всего к тому
процессору, что у меня).

> mm <- matrix(rnorm(10^6), ncol = 10^3)
> system.time(crossprod(mm))
[1] 0.312 0.016 0.330 0.000 0.000

Т.е. немного лучше, чем для P4SSE2.  (Набор инструкций в данном случае
не отличается, отличаются только некоторые параметры управления L1/L2
кешем, или что там ещё).

SSE2 сейчас является общим знаменателем для P4 и современных атлонов.
Поскольку x86 ещё некоторое время будет существовать, то софт, для
которого специфическая оптимизация имеет смысл (и дает существенный
выигрыш, как в случае с числодробильными библиотеками), стоит
собирать праллельно и ставить в /usr/lib/sse2.  Правда, кроеме ATLAS
сходу на ум ничего не приходит.

А вообще надо переходить на x86_64, как я понимаю проблем с оптимизацией
"под архитектуру" там будет гораздо меньше (т.е. в первых Athlon64 не
было SSE3, а в P4 есс-но нет 3dNow, но остальное всё совпадает).

[-- Attachment #2: Type: application/pgp-signature, Size: 191 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [sisyphus] ATLAS vs BLAS performance
  2006-06-04 22:26   ` Alexey Tourbin
  2006-06-05  1:17     ` Alexey Tourbin
@ 2006-06-05  4:22     ` Valery Pipin
  2006-06-05  7:30       ` Alexey Tourbin
  2006-06-05  6:19     ` Andrey Khavryuchenko
  2 siblings, 1 reply; 17+ messages in thread
From: Valery Pipin @ 2006-06-05  4:22 UTC (permalink / raw)
  To: ALT Linux Sisyphus discussion list

Эта радость под g77?
Alexey Tourbin wrote:
>
> Осталось только в сизиф это собрать, что непросто, потому что ATLAS
> пытается всеми силами собираться под процессор хост-системы.  Я уже
> понял, что там нужно отровать.  Пока идея такая: в /usr/lib собрать
в дебиане атлас уже давно и под разные архитектуры. Можно
посмотреть как у них сделано.


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [sisyphus] ATLAS vs BLAS performance
  2006-06-04 22:26   ` Alexey Tourbin
  2006-06-05  1:17     ` Alexey Tourbin
  2006-06-05  4:22     ` Valery Pipin
@ 2006-06-05  6:19     ` Andrey Khavryuchenko
  2006-06-05  7:50       ` Alexey Tourbin
  2006-06-05  7:53       ` Ivan Adzhubey
  2 siblings, 2 replies; 17+ messages in thread
From: Andrey Khavryuchenko @ 2006-06-05  6:19 UTC (permalink / raw)
  To: sisyphus

Alexey,

"AT" == Alexey Tourbin wrote:

 AT> On Sun, Jun 04, 2006 at 06:04:54PM -0400, Ivan Adzhubey wrote:
 >> On Sunday 04 June 2006 17:05, Alexey Tourbin wrote:
 >> > Я разобрался, как надо собирать ATLAS.
 >> > Вот предварительный benchmark.
 >> >
 >> > Fortran BLAS:
 >> > > mm <- matrix(rnorm(10^6), ncol = 10^3)
 >> > > system.time(crossprod(mm))
 >> >
 >> > [1] 1.572 0.004 1.580 0.000 0.000
 >> >
 >> > ATLAS w/ SSE2:
 >> > > mm <- matrix(rnorm(10^6), ncol = 10^3)
 >> > > system.time(crossprod(mm))
 >> >
 >> > [1] 0.344 0.020 0.369 0.000 0.000

Когда можно ждать пакеты?

 >> А вот с GotoBLAS 1.2 (P4 2.8GHz, R 2.3.0):
 >> 
 >> > mm <- matrix(rnorm(10^6), ncol = 10^3)
 >> > system.time(crossprod(mm))
 >> [1] 0.232 0.012 0.270 0.000 0.000

 AT> Похоже, что процессор у Вас помощнее.  Суть в том, что разница будет
 AT> если и заментной, то не значительной.  Учитывая то, что ATLAS -- это
 AT> free software, а GotoBLAS -- проприетарный софт, то агитирую за ATLAS. :)

Я бы хотел/просил для GotoBLAS тоже сделать nosrc.rpm.  И для ATLAS
наверное тоже.

[...]

 AT> В общем, если это будет работать из коробки как надо и если по сравнению
 AT> с GotoBLAS разница будет не хуже, чем в полтора раза, тогда я буду
 AT> доволелен.  Потому что основной разрыв по сравнению с фортраном всё
 AT> равно ликвидирован, а 10-20% на практике редко что решают.

Если бы... :(  Когда расчёты идут месяцами, то 10-20% - весьма существенное
время. 

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

-- 
Andrey V Khavryuchenko            
Software Development Company http://www.kds.com.ua/


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [sisyphus] ATLAS vs BLAS performance
  2006-06-05  4:22     ` Valery Pipin
@ 2006-06-05  7:30       ` Alexey Tourbin
  2006-06-05  7:45         ` Ivan Adzhubey
  0 siblings, 1 reply; 17+ messages in thread
From: Alexey Tourbin @ 2006-06-05  7:30 UTC (permalink / raw)
  To: ALT Linux Sisyphus discussion list

[-- Attachment #1: Type: text/plain, Size: 2367 bytes --]

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 весит на альтернативах.  Ужос!

[-- Attachment #2: Type: application/pgp-signature, Size: 191 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [sisyphus] ATLAS vs BLAS performance
  2006-06-05  7:30       ` Alexey Tourbin
@ 2006-06-05  7:45         ` Ivan Adzhubey
  0 siblings, 0 replies; 17+ messages in thread
From: Ivan Adzhubey @ 2006-06-05  7:45 UTC (permalink / raw)
  To: ALT Linux Sisyphus discussion list

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 весит на альтернативах.  Ужос!

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

-- 
Иван


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [sisyphus] ATLAS vs BLAS performance
  2006-06-05  6:19     ` Andrey Khavryuchenko
@ 2006-06-05  7:50       ` Alexey Tourbin
  2006-06-05  7:58         ` Andrey Khavryuchenko
  2006-06-05 10:11         ` Alexey Tourbin
  2006-06-05  7:53       ` Ivan Adzhubey
  1 sibling, 2 replies; 17+ messages in thread
From: Alexey Tourbin @ 2006-06-05  7:50 UTC (permalink / raw)
  To: sisyphus

[-- Attachment #1: Type: text/plain, Size: 1628 bytes --]

On Mon, Jun 05, 2006 at 09:19:46AM +0300, Andrey Khavryuchenko wrote:
>  >> > [1] 0.344 0.020 0.369 0.000 0.000
> Когда можно ждать пакеты?

Ждем ебилдов... :)  С бласом всё нормально, осталось понять, что делать
с лапаком, потому что он там реализован только частично (в частности,
R-base'у атласного лапака не хватает).

Завтра ждать можно.

> Я бы хотел/просил для GotoBLAS тоже сделать nosrc.rpm.  И для ATLAS
> наверное тоже.

Одна из проблем в чём: я ведь собираю разделяемые библиотеки, а лапак
зависит от бласа.  Следовательно, на стадии сборки лапака нужно решать,
с каким бласом его линковать, либо вешать libblas$suffix на
альтернативы, либо предусматривать в спеке возможность пересборки лапака
с разными бласами.

Статику я вообще собирать не хочу, потому что теперь мне стало ясно, что
у разделяемых библиотек есть ещё одно преимущество: можно положить две
библиотеки с разной оптимизацией в /usr/lib/lib$name$suffix и
/usr/lib/sse2/lib$name$suffx, а ldconfig/ld-linux.so.2 выберет наилучший
вариант на основе hwcap.  Со статикой так не бываеет.

> Если бы... :(  Когда расчёты идут месяцами, то 10-20% - весьма существенное
> время. 

> Понятное дело, что при подобной постановке задачи надо оптимизировать пакет
> под конкретную хост-систему.  Но хотелось бы всё же иметь максимум
> возможного "из коробки".

Я и хочу сделать максимум возможного их коробки, но не поступаясь
принципами (типа вешать libblas на альтернативы или использовать
проприетарный софт).  Кстати atlas включает в себя gemm/ который потом
стал проприетарным GotoBLAS.  Так что должно получиться неплохо.

[-- Attachment #2: Type: application/pgp-signature, Size: 191 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [sisyphus] ATLAS vs BLAS performance
  2006-06-05  6:19     ` Andrey Khavryuchenko
  2006-06-05  7:50       ` Alexey Tourbin
@ 2006-06-05  7:53       ` Ivan Adzhubey
  2006-06-05  7:57         ` Ivan Adzhubey
  2006-06-05  9:36         ` Andrey Khavryuchenko
  1 sibling, 2 replies; 17+ messages in thread
From: Ivan Adzhubey @ 2006-06-05  7:53 UTC (permalink / raw)
  To: ALT Linux Sisyphus discussion list

On Monday 05 June 2006 02:19, Andrey Khavryuchenko wrote:
> Alexey,
>
> "AT" == Alexey Tourbin wrote:
>
>  AT> On Sun, Jun 04, 2006 at 06:04:54PM -0400, Ivan Adzhubey wrote:
>  >> On Sunday 04 June 2006 17:05, Alexey Tourbin wrote:
>  >> > Я разобрался, как надо собирать ATLAS.
>  >> > Вот предварительный benchmark.
>  >> >
>  >> > Fortran BLAS:
>  >> > > mm <- matrix(rnorm(10^6), ncol = 10^3)
>  >> > > system.time(crossprod(mm))
>  >> >
>  >> > [1] 1.572 0.004 1.580 0.000 0.000
>  >> >
>  >> > ATLAS w/ SSE2:
>  >> > > mm <- matrix(rnorm(10^6), ncol = 10^3)
>  >> > > system.time(crossprod(mm))
>  >> >
>  >> > [1] 0.344 0.020 0.369 0.000 0.000
>
> Когда можно ждать пакеты?
>
>  >> А вот с GotoBLAS 1.2 (P4 2.8GHz, R 2.3.0):
>  >> > mm <- matrix(rnorm(10^6), ncol = 10^3)
>  >> > system.time(crossprod(mm))
>  >>
>  >> [1] 0.232 0.012 0.270 0.000 0.000
>
>  AT> Похоже, что процессор у Вас помощнее.  Суть в том, что разница будет
>  AT> если и заментной, то не значительной.  Учитывая то, что ATLAS -- это
>  AT> free software, а GotoBLAS -- проприетарный софт, то агитирую за ATLAS.
> :)
>
> Я бы хотел/просил для GotoBLAS тоже сделать nosrc.rpm.  И для ATLAS
> наверное тоже.

С GotoBLAS наверное будут проблемы с лицензией. Хотя она и стала open source 
недавно, а сам Гото наверняка был бы только рад отдать проект под GPL, но его 
университет скорее всего этого не допустит. Могу впрочем у него спросить, что 
он по этому поводу думает. UT Austin - это частный университет, а в частных 
лавочках тут с technology transfer очень строго. Мы пока как-то обходим, но я 
сталкивался с ребятами из этого отдела (у нас тоже частная лавочка, как и 
большинство американских исследовательских институтов), так в советские 
времена с "первым" отделом и то проще было договориться.

-- 
Иван


-- 
Иван


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [sisyphus] ATLAS vs BLAS performance
  2006-06-05  7:53       ` Ivan Adzhubey
@ 2006-06-05  7:57         ` Ivan Adzhubey
  2006-06-05  9:36         ` Andrey Khavryuchenko
  1 sibling, 0 replies; 17+ messages in thread
From: Ivan Adzhubey @ 2006-06-05  7:57 UTC (permalink / raw)
  To: ALT Linux Sisyphus discussion list

On Monday 05 June 2006 03:53, Ivan Adzhubey wrote:
> > Я бы хотел/просил для GotoBLAS тоже сделать nosrc.rpm.  И для ATLAS
> > наверное тоже.
>
> С GotoBLAS наверное будут проблемы с лицензией. Хотя она и стала open
> source недавно, а сам Гото наверняка был бы только рад отдать проект под
> GPL, но его университет скорее всего этого не допустит. Могу впрочем у него
> спросить, что он по этому поводу думает. UT Austin - это частный
> университет, а в частных лавочках тут с technology transfer очень строго.
> Мы пока как-то обходим, но я сталкивался с ребятами из этого отдела (у нас
> тоже частная лавочка, как и большинство американских исследовательских
> институтов), так в советские времена с "первым" отделом и то проще было
> договориться.

Ошибся, оказывается UT Austin - это public university. Тогда еще не все 
потеряно...

-- 
Иван


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [sisyphus] ATLAS vs BLAS performance
  2006-06-05  7:50       ` Alexey Tourbin
@ 2006-06-05  7:58         ` Andrey Khavryuchenko
  2006-06-05 10:11         ` Alexey Tourbin
  1 sibling, 0 replies; 17+ messages in thread
From: Andrey Khavryuchenko @ 2006-06-05  7:58 UTC (permalink / raw)
  To: sisyphus

Alexey,

"AT" == Alexey Tourbin wrote:

 AT> On Mon, Jun 05, 2006 at 09:19:46AM +0300, Andrey Khavryuchenko wrote:
 >> >> > [1] 0.344 0.020 0.369 0.000 0.000
 >> Когда можно ждать пакеты?

 AT> Ждем ебилдов... :)  С бласом всё нормально, осталось понять, что делать
 AT> с лапаком, потому что он там реализован только частично (в частности,
 AT> R-base'у атласного лапака не хватает).

 AT> Завтра ждать можно.

Спасибо.

[...]

 >> Понятное дело, что при подобной постановке задачи надо оптимизировать пакет
 >> под конкретную хост-систему.  Но хотелось бы всё же иметь максимум
 >> возможного "из коробки".

 AT> Я и хочу сделать максимум возможного их коробки, но не поступаясь
 AT> принципами (типа вешать libblas на альтернативы или использовать
 AT> проприетарный софт).  Кстати atlas включает в себя gemm/ который потом
 AT> стал проприетарным GotoBLAS.  Так что должно получиться неплохо.

Оччень хорошо :)

-- 
Andrey V Khavryuchenko            
Software Development Company http://www.kds.com.ua/


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [sisyphus] ATLAS vs BLAS performance
  2006-06-05  7:53       ` Ivan Adzhubey
  2006-06-05  7:57         ` Ivan Adzhubey
@ 2006-06-05  9:36         ` Andrey Khavryuchenko
  1 sibling, 0 replies; 17+ messages in thread
From: Andrey Khavryuchenko @ 2006-06-05  9:36 UTC (permalink / raw)
  To: sisyphus

Ivan,

"IA" == Ivan Adzhubey wrote:

 IA> On Monday 05 June 2006 02:19, Andrey Khavryuchenko wrote:
 >> Я бы хотел/просил для GotoBLAS тоже сделать nosrc.rpm.  И для ATLAS
 >> наверное тоже.

 IA> С GotoBLAS наверное будут проблемы с лицензией.

Вот поэтому и nosrc.rpm - только с инструкциями для сборки и инсталляции.

-- 
Andrey V Khavryuchenko            
Software Development Company http://www.kds.com.ua/


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [sisyphus] ATLAS vs BLAS performance
  2006-06-05  7:50       ` Alexey Tourbin
  2006-06-05  7:58         ` Andrey Khavryuchenko
@ 2006-06-05 10:11         ` Alexey Tourbin
  2006-06-06 11:14           ` Alexey Tourbin
  1 sibling, 1 reply; 17+ messages in thread
From: Alexey Tourbin @ 2006-06-05 10:11 UTC (permalink / raw)
  To: sisyphus

[-- Attachment #1: Type: text/plain, Size: 1054 bytes --]

On Mon, Jun 05, 2006 at 11:50:22AM +0400, Alexey Tourbin wrote:
> On Mon, Jun 05, 2006 at 09:19:46AM +0300, Andrey Khavryuchenko wrote:
> >  >> > [1] 0.344 0.020 0.369 0.000 0.000
> > Когда можно ждать пакеты?
> 
> Ждем ебилдов... :)  С бласом всё нормально, осталось понять, что делать
> с лапаком, потому что он там реализован только частично (в частности,
> R-base'у атласного лапака не хватает).
> 
> Завтра ждать можно.

Эх!  Дело осложняется SEGV.

at@localhost ~build/LAPACK/TESTING 15 $ LD_LIBRARY_PATH=.. ./xeigtstd < dec.in
 Tests of the Nonsymmetric eigenproblem condition estimation routines
 DLALN2, DLASY2, DLANV2, DLAEXC, DTRSYL, DTREXC, DTRSNA, DTRSEN, DLAQTR

 Relative machine precision (EPS) =     0.444089D-15
 Safe minimum (SFMIN)             =     0.222507-307

 Routines pass computational tests if test ratio is less than   20.00


 DEC routines passed the tests of the error exits ( 35 tests done)
zsh: segmentation fault  LD_LIBRARY_PATH=.. ./xeigtstd < dec.in
at@localhost ~build/LAPACK/TESTING 15 $ 

[-- Attachment #2: Type: application/pgp-signature, Size: 191 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [sisyphus] ATLAS vs BLAS performance
  2006-06-05 10:11         ` Alexey Tourbin
@ 2006-06-06 11:14           ` Alexey Tourbin
  2006-11-24 23:58             ` Alexey Tourbin
  0 siblings, 1 reply; 17+ messages in thread
From: Alexey Tourbin @ 2006-06-06 11:14 UTC (permalink / raw)
  To: sisyphus

[-- Attachment #1: Type: text/plain, Size: 2132 bytes --]

On Mon, Jun 05, 2006 at 02:11:45PM +0400, Alexey Tourbin wrote:
> On Mon, Jun 05, 2006 at 11:50:22AM +0400, Alexey Tourbin wrote:
> > On Mon, Jun 05, 2006 at 09:19:46AM +0300, Andrey Khavryuchenko wrote:
> > >  >> > [1] 0.344 0.020 0.369 0.000 0.000
> > > Когда можно ждать пакеты?
> > 
> > Ждем ебилдов... :)  С бласом всё нормально, осталось понять, что делать
> > с лапаком, потому что он там реализован только частично (в частности,
> > R-base'у атласного лапака не хватает).
> > 
> > Завтра ждать можно.
> 
> Эх!  Дело осложняется SEGV.
> 
> at@localhost ~build/LAPACK/TESTING 15 $ LD_LIBRARY_PATH=.. ./xeigtstd < dec.in
>  Tests of the Nonsymmetric eigenproblem condition estimation routines
>  DLALN2, DLASY2, DLANV2, DLAEXC, DTRSYL, DTREXC, DTRSNA, DTRSEN, DLAQTR
> 
>  Relative machine precision (EPS) =     0.444089D-15
>  Safe minimum (SFMIN)             =     0.222507-307
> 
>  Routines pass computational tests if test ratio is less than   20.00
> 
> 
>  DEC routines passed the tests of the error exits ( 35 tests done)
> zsh: segmentation fault  LD_LIBRARY_PATH=.. ./xeigtstd < dec.in
> at@localhost ~build/LAPACK/TESTING 15 $ 

В результате изнуряющих опытов обнаружено следующее: все сборки с sse2
сегфолтятся.  В частности, а) сегофолтится сам atlas, если попросить его
сделать 'make sanity_test'; б) сегфолтится один из тестов при сборке
лапака.

В сборке без sse2 сегфолтов нет.

В сборке для x86_64 один из тестов лапака входит в бесконечный цикл.
Также при сборке лапака для x86_64 не удается выполнить большее
количество тестов.

В результате в сизиф уходит сборка без sse2 для i586 и частично
сломанная сборка для x86_64.  Однако 'make check' от R-base в последнем
случае выполняется нормально (как и в первом).

Если у кого-то окажется достаточно квалификации и времени для того, чтобы
расковырять сегфолт в sse2-сборке -- прошу:

	rpm --rebuild --with sse2 atlas-3.7.11-alt1.src.rpm

Кстати в других дистрибутивах я вообще не видел, чтобы кто-то что-то
вроде 'make test' пробовал сделать -- почему-то только мне в голову такие
крамольные мысли приходят.

[-- Attachment #2: Type: application/pgp-signature, Size: 191 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [sisyphus] ATLAS vs BLAS performance
  2006-06-06 11:14           ` Alexey Tourbin
@ 2006-11-24 23:58             ` Alexey Tourbin
  0 siblings, 0 replies; 17+ messages in thread
From: Alexey Tourbin @ 2006-11-24 23:58 UTC (permalink / raw)
  To: sisyphus

[-- Attachment #1: Type: text/plain, Size: 1239 bytes --]

On Tue, Jun 06, 2006 at 03:14:45PM +0400, Alexey Tourbin wrote:
> В результате изнуряющих опытов обнаружено следующее: все сборки с sse2
> сегфолтятся.  В частности, а) сегофолтится сам atlas, если попросить его
> сделать 'make sanity_test'; б) сегфолтится один из тестов при сборке
> лапака.
> 
> В сборке без sse2 сегфолтов нет.
> 
> В сборке для x86_64 один из тестов лапака входит в бесконечный цикл.
> Также при сборке лапака для x86_64 не удается выполнить большее
> количество тестов.
> 
> В результате в сизиф уходит сборка без sse2 для i586 и частично
> сломанная сборка для x86_64.  Однако 'make check' от R-base в последнем
> случае выполняется нормально (как и в первом).
> 
> Если у кого-то окажется достаточно квалификации и времени для того, чтобы
> расковырять сегфолт в sse2-сборке -- прошу:
> 
> 	rpm --rebuild --with sse2 atlas-3.7.11-alt1.src.rpm
> 
> Кстати в других дистрибутивах я вообще не видел, чтобы кто-то что-то
> вроде 'make test' пробовал сделать -- почему-то только мне в голову такие
> крамольные мысли приходят.

Проблема локализована; скоро будет мега-оптимизированный ATLAS,
по скорости сравнимый c GotoBLAS (в /usr/lib/sse2/ будет лежать
мега-оптимизированный libatlas.so).

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2006-11-24 23:58 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-06-04 21:05 [sisyphus] ATLAS vs BLAS performance Alexey Tourbin
2006-06-04 22:04 ` Ivan Adzhubey
2006-06-04 22:26   ` Alexey Tourbin
2006-06-05  1:17     ` Alexey Tourbin
2006-06-05  2:41       ` Alexey Tourbin
2006-06-05  4:22     ` Valery Pipin
2006-06-05  7:30       ` Alexey Tourbin
2006-06-05  7:45         ` Ivan Adzhubey
2006-06-05  6:19     ` Andrey Khavryuchenko
2006-06-05  7:50       ` Alexey Tourbin
2006-06-05  7:58         ` Andrey Khavryuchenko
2006-06-05 10:11         ` Alexey Tourbin
2006-06-06 11:14           ` Alexey Tourbin
2006-11-24 23:58             ` Alexey Tourbin
2006-06-05  7:53       ` Ivan Adzhubey
2006-06-05  7:57         ` Ivan Adzhubey
2006-06-05  9:36         ` Andrey Khavryuchenko

ALT Linux Sisyphus discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \
		sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru
	public-inbox-index sisyphus

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.sisyphus


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git