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

Intel MKL FATAL ERROR: невозможно загрузить libmkl_avx2.so или libmkl_def.so

Я запускаю python script, и я получаю эту ошибку:

Intel MKL FATAL ERROR: Cannot load libmkl_avx2.so or libmkl_def.so.

Оба файла присутствуют в каталоге anaconda2/lib. Как я могу исправить эту ошибку? Благодарю.

4b9b3361

Ответ 1

Если вы используете conda, попробуйте выполнить следующие две команды:

conda install nomkl numpy scipy scikit-learn numexpr
conda remove mkl mkl-service

Он должен исправить вашу проблему.

Ответ 2

Я столкнулся с этой проблемой после установки anaconda3 (vesion 4.2.0). Исправление для меня было простым, и я смог продолжать использовать mkl. Просто обновите последнюю версию numpy.

conda update numpy

Ответ 3

Просто хотелось отметить, что Anaconda 4.0.0, поставляемый с mkl включен по умолчанию, имеет эту проблему. Проблема действительно в Anaconda, так как она может быть воспроизведена с помощью простого теста python ниже.

Фактическая проблема заключается в том, что Anaconda связан с mkl, но не с libmkl_core.so, поэтому он имеет отсутствующий символ и может быть замечен запуском:

$ LD_DEBUG=symbols python -c 'import sklearn.linear_model.tests.test_randomized_l1' 2>&1 | grep -i error
      2200:     /opt/anaconda/lib/python2.7/site-packages/scipy/special/../../../../libmkl_avx.so: error: symbol lookup error: undefined symbol: mkl_dft_fft_fix_twiddle_table_32f (fatal)

Я не хотел удалять mkl, так как я хотел бы повысить производительность, поэтому я нашел обходной путь, который работал у меня - предварительно загрузите libmkl_core.so перед исполнением.

$ python -c 'import sklearn.linear_model.tests.test_randomized_l1'
Intel MKL FATAL ERROR: Cannot load libmkl_avx.so or libmkl_def.so.
$
$ LD_PRELOAD=/opt/anaconda/lib/libmkl_core.so python -c 'import sklearn.linear_model.tests.test_randomized_l1'
$

Ответ 4

Все приведенные выше решения не помогли мне, но я нашел хороший компромисс:

для тех, кто имеет ту же ошибку и хочет сохранить Anaconda на своем компьютере, а использование стали mkl для (нулевой и scipy) хорошей производительности процесса, решение, которое я предлагаю:

Отредактируйте файл .bashrc.

Найдите в файле что-то вроде export PATH="/home/anaconda2/bin:$PATH".

Поместите a # в начале, чтобы прокомментировать его из script: #export PATH="/home/anaconda2/bin:$PATH"

Откройте новый терминал, и вы должны запустить базовую установку python.

Это сработало для меня, надеюсь, что это будет полезно.

Ответ 5

Получена та же проблема и решена с помощью команды:

conda install nomkl

Я получил решение из этого обсуждения https://github.com/BVLC/caffe/issues/3884

Ответ 6

Хотелось добавить на темы Валилуцик и Зайкун Сюй. Я не могу добавлять комментарии, так как пока у меня недостаточно очков. conda install nomkl numpy scipy scikit-learn numexpr работал у меня без необходимости удаления mkl и mkl-сервиса.

Добавление ответа на вопрос Ли, если nomkl будет медленнее: mkl - это библиотека ядра Intel для математического ядра и оптимизирована вручную для Intel cpus. nomkl использует OpenBlas в соответствии с этим: https://docs.continuum.io/mkl-optimizations/ Кажется, что mkl довольно быстро работает на многих матричных операциях для intel cpus (см. https://software.intel.com/en-us/articles/performance-comparison-of-openblas-and-intel-math-kernel-library-in-r)
Я видел, как кто-то говорит, что nomkl быстрее для AMD cpus (возможно, потому что mkl работает неправильно в AMD?)