Numpy с ATLAS или OpenBLAS?

Потратив огромное количество времени на сборку ATLAS из исходного кода, я обнаружил, что libopenblas и libatals в репозитории OpenSUSE 13.1. Мои вопросы

  1. Действительно ли эта простая установка (без настройки на вашем собственном компьютере) «libatlas» в репозитории улучшает производительность вычислений?

  2. Является ли OpenBLAS лучше, чем ATLAS, или только лучше, чем простая в установке «libatlas» в репозитории разновидности Linux? См. Для более быстрого R используйте вместо этого OpenBLAS: лучше, чем ATLAS, тривиально переключиться на Ubuntu.

  3. Я следил за этим сообщением Компиляция Numpy с OpenBLAS, но не могу найти "numpy.core._dotblas" модуль. Более того, я не мог собрать Numpy с ATLAS и OpenBLAS одновременно.

  4. Может ли кто-нибудь опубликовать файл .py или код bash для сравнения ATLAS и OpenBLAS? Например.

  5. Я создал Numpy-1.9 с помощью собственного ATLAS, скомпилированного OpenBLAS из исходного кода и установил "libopenblaso" (версия OpenMP) и "libopenblasp" (версия pthreads) в репозиторий OpenSUSE 13.1. Как настроить ссылки и библиотеки, чтобы можно было указать Numpy-1.9 использовать OpenBLAS вместо ATLAS без пересборки пакета Numpy-1.9.

Примечание: Если вы устанавливаете "libatlas" в репозиторий, ATLAS не настроен для вашего компьютера и не может значительно повысить производительность вычислений. Поэтому я сначала построил и настроил ATLAS, а затем собрал Numpy со своим собственным ATLAS. После этого я попытался связать OpenBLAS с Numpy, но безуспешно.

Спасибо заранее!


Спасибо @Dmitry за быстрый ответ! Но вопросы не решены...

Установить

$ sudo zypper in libopenblasp0

The following NEW package is going to be installed:
  libopenblasp0 

1 new package to install.
Overall download size: 3.0 MiB. After the operation, additional 30.3 MiB will be used.
Continue? [y/n/? shows all options] (y): 
Retrieving package libopenblasp0-0.2.11-11.1.x86_64      (1/1),   3.0 MiB ( 30.3 MiB unpacked)
Retrieving: libopenblasp0-0.2.11-11.1.x86_64.rpm ...........................[done (2.1 MiB/s)]
(1/1) Installing: libopenblasp0-0.2.11-11.1 ............................................[done]

Additional rpm output:
/sbin/ldconfig: Can't link /usr/lib64//usr/local/atlas/lib/libtatlas.so to libopenblas.so.0

В: Почему стоит забавная двойная косая черта "..64//usr.."?

Связать библиотеку

$ /usr/sbin/update-alternatives --config libblas.so.3

  Selection    Path                               Priority   Status
------------------------------------------------------------
  0            /usr/local/atlas/lib/libtatlas.so   70        auto mode
  1            /usr/lib64/blas/libblas.so.3        50        manual mode
  2            /usr/lib64/libopenblasp.so.0        20        manual mode
  3            /usr/local/atlas/lib/libcblas.a     50        manual mode
  4            /usr/local/atlas/lib/libptcblas.a   60        manual mode
  5            /usr/local/atlas/lib/libsatlas.so   65        manual mode
* 6            /usr/local/atlas/lib/libtatlas.so   70        manual mode

В: Подходит ли эта конфигурация, поскольку некоторые статические библиотеки ".a" связаны?

Примечание: "libopenblasp.so.0" подключается автоматически после "zypper in", в то время как все библиотеки "atlas" создаются вручную командой:

$ /usr/sbin/update-alternatives --install /usr/lib64/blas/libblas.so.3 libblas.so.3 /usr/local/atlas/lib/libxxxx.x <Integer>

person gundamlh    schedule 14.09.2014    source источник
comment
Вот отчет Сравнение различных версий BLAS!   -  person gundamlh    schedule 14.09.2014
comment
Сравнение: stackoverflow.com/questions/5260068/   -  person gundamlh    schedule 14.09.2014


Ответы (1)


Вы можете переключаться между системными реализациями BLAS и LAPACK с помощью альтернативных обновлений. Например:

/usr/sbin/update-alternatives --config libblas.so.3

http://en.opensuse.org/openSUSE:Science_Linear_алгебра_библиотеки

Я не знаю о пакетах atlas, но мы предоставляем openblas с поддержкой нескольких архитектур. Математическое ядро ​​включает в себя все оптимизации для конкретного процессора и динамически устанавливает правильный вариант. Обратите внимание, что существует 3 версии библиотеки openblas: серийная версия, версия pthreads и версия openmp. Вам нужно использовать pthreads или openmp.

person Dmitry    schedule 14.09.2014
comment
$ sudo zypper в libopenblasp0 $ 1 новый пакет для установки. $ Дополнительный вывод rpm: /sbin/ldconfig: невозможно связать /usr/lib64//usr/local/atlas/lib/libtatlas.so с libopenblas.so.0 - person gundamlh; 14.09.2014
comment
почему там двойной слэш ..64//usr..? - person gundamlh; 14.09.2014
comment
Действительно странная ошибка. У вас есть собственная сборка атласа в /usr/local? А у вас установлены обновления? Где был конфликт между ldconfig и update-alternatives. В любом случае, если у вас большие логи или что-то подобное, вы можете написать мне напрямую: dmitry_r [at] opensuse.org - person Dmitry; 14.09.2014
comment
Да, я создал свою собственную библиотеку атласа из исходного кода. Какие обновления мне следует установить? Вы имеете в виду $ sudo /sbin/ldconfig после установки? Нет, я этого не делал. Я пришлю вам большой установочный журнал прямо сейчас. - person gundamlh; 14.09.2014
comment
По вашим логам обновления установлены. Так что ldconfig запутался в собственном атласе. К сожалению, ничего не могу сказать об этой ситуации. - person Dmitry; 14.09.2014
comment
Возможно, вместо этого мне следует установить собственный атлас в каталог по умолчанию /usr/lib64? - person gundamlh; 14.09.2014