Подтвердить что ты не робот

Как использовать numpy с OpenBLAS вместо Atlas в Ubuntu?

Я искал простой способ установить/скомпилировать Numpy с OpenBLAS, но не нашел простой ответ. Вся документация, которую я видел, требует слишком много знаний, как предоставленных для кого-то вроде меня, который не используется для компиляции программного обеспечения. В Ubuntu есть два пакета, связанных с OpenBLAS: libopenblas-base и libopenblas-dev. Как только они будут установлены, что я должен сделать, чтобы снова установить Numpy с ними? Спасибо!

Обратите внимание, что когда эти пакеты OpenBLAS установлены, Numpy больше не работает: его нельзя импортировать: ImportError:/usr/lib/liblapack.so.3gf: undefined symbol: ATL_chemv. Проблема возникает также при установке Theano с их инструкциями веб-сайта для Ubuntu.

Это уже было замечено здесь.

4b9b3361

Ответ 1

Запустите sudo update-alternatives --all и установите liblapack.so.3gf в /usr/lib/lapack/liblapack.so.3gf

Ответ 2

Чтобы добавить к принятому ответу (используя update-alternatives), причина этого в том, что OpenBlas несовместим с версией Lapack от Atlas. Для каждой версии Blas и Lapack:

  • По умолчанию Blas + Default Lapack = > OK
  • OpenBlas + Default Lapack = > OK
  • Atlas-Blas + По умолчанию Lapack = > OK
  • Atlas-Blas + Atlas-Lapack = > OK
  • OpenBlas + Atlas-Lapack = > ОШИБКА! (Следующий случай здесь.)

Это из личного опыта (с той же проблемой) и понимания того, почему такая комбинация не упоминалась в этом сравнительном блоге.

Кстати, вы можете просто найти необходимые файлы в /etc/alternatives/, обычно с именем файла, начинающимся с lib*. Для каждого из них sudo update-alternatives --config <filename>. Например, выполните следующие действия:

  • sudo update-alternatives --config libblas.so
  • sudo update-alternatives --config libblas.so.3

чтобы изменить версию Blas.

Ответ 3

Рассмотрите возможность использования EasyBuild (http://hpcugent.github.io/easybuild/), рамки с открытым исходным кодом для создания и установки программного обеспечения.

Он позволяет (очень легко) создавать и устанавливать (научное) программное обеспечение с различным компилятором и использовать разные библиотеки BLAS (ATLAS, OpenBLAS, ACML, Intel MKL,...).

После установки EasyBuild (pro tip: используйте процедуру начальной загрузки, описанную в https://github.com/hpcugent/easybuild/wiki/Bootstrapping-EasyBuild), она сводится к запуску одной команды, что-то вроде:

eb numpy-1.6.2-goolf-1.4.10-Python-2.7.3.eb -ldr

Сначала будет построена и установлена ​​полная компилятор toolchain (goolf: GCC + OpenBLAS + OpenMPI + LAPACK + FFTW), а затем постройте Python и numpy с помощью этой инструментальной цепочки. И все это, пока вы ходите пообедать.; -)

Отказ от ответственности: я один из разработчиков EasyBuild.