Не уверены, использует ли моя версия Python / numpy оптимизированные библиотеки BLAS / LAPACK? - PullRequest
1 голос
/ 14 марта 2019

Я прочитал здесь , что важно "убедиться, что numpy использует оптимизированную версию библиотек BLAS / LAPACK в вашей системе."

Когда я ввожу:

import numpy as np
np.__config__.show()

Я получаю следующие результаты:

blas_mkl_info:
  NOT AVAILABLE
blis_info:
  NOT AVAILABLE
openblas_info:
    libraries = ['openblas', 'openblas']
    library_dirs = ['/home/anaconda3/lib']
    language = c
    define_macros = [('HAVE_CBLAS', None)]
blas_opt_info:
    libraries = ['openblas', 'openblas']
    library_dirs = ['/home/anaconda3/lib']
    language = c
    define_macros = [('HAVE_CBLAS', None)]
lapack_mkl_info:
  NOT AVAILABLE
openblas_lapack_info:
    libraries = ['openblas', 'openblas']
    library_dirs = ['/home/anaconda3/lib']
    language = c
    define_macros = [('HAVE_CBLAS', None)]
lapack_opt_info:
    libraries = ['openblas', 'openblas']
    library_dirs = ['/home/anaconda3/lib']
    language = c
    define_macros = [('HAVE_CBLAS', None)]

Означает ли это, что моя версия numpy использует оптимизированные библиотеки BLAS / LAPACK, и если нет, то как я могу настроить numpy, чтобы она использовала оптимизированную версию?

1 Ответ

2 голосов
/ 15 марта 2019

Вид.С OpenBLAS все в порядке.Я просто взял первую ссылку, которую я смог найти в Google в поиске «Сравнение OpenBLAS, ATLAS, MKL».

http://markus -beuckelmann.de / blog / boosting-numpy-blas.html

Это еще не вся история.Различия могут не быть / быть немного / сильно отличаться в зависимости от алгоритмов, которые вам нужны.На самом деле не так много можно сделать, кроме как запустить собственный код, связанный с различными реализациями.

В среднем мои фавориты по всем видам линейных алгебраических задач, SVD, Eigs, действительным и псевдоинверсиям, факторизации ... одноядерный / многоядерный в разных ОС:

MacOS: ускоренная среда(поставляется вместе с ОС) Linux / Windows:

  1. MKL
  2. с большим расстоянием, но все еще тихо в порядке: ATLAS и OpenBLAS на уровне
  3. ACML всегда былразочарование для меня даже на процессорах AMD

TLDR: Ваша установка в порядке.Но если вы хотите выжать последнюю каплю крови из вашей комбинации CPU / RAM / Mainboard, вам нужен MKL.Это, конечно, стоит довольно дорого, но если вы можете получить оборудование вдвое дешевле, возможно, оно того стоит.А если вы пишете пакет с открытым исходным кодом, вы можете использовать MKL бесплатно для целей разработки.

...