mkl compiler python anaconda intel-mkl

python - compiler - Intel MKL FATAL ERROR: No se puede cargar libmkl_avx2.so o libmkl_def.so



mkl python (8)

Estoy ejecutando un script de Python y obtengo este error:

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

Ambos archivos están presentes en el directorio anaconda2 / lib. ¿Cómo puedo solucionar este error? Gracias.


En caso de que alguien tenga un problema similar y obtenga errores que libmkl_p4m.so o libmkl_p4.so no se pueden encontrar (esto ocurrió cuando llamo a ciertas funciones numpy), intenté reinstalar / actualizar diferentes módulos de python y revertir / actualizar a varias versiones de Anaconda , y ninguno funcionó. Sin embargo, descubrí que la desinstalación completa de anaconda y la reinstalación (a la versión 4.4.10) resolvió el problema.


Me encontré con este problema después de instalar anaconda3 (vesion 4.2.0). La solución para mí fue simple, y pude seguir usando mkl. Simplemente actualiza a la última versión numpy.

conda update numpy


Quería agregar el hilo de Valilutzik y Zaikun Xu. No puedo agregar comentarios porque todavía no tengo suficientes puntos.
conda install nomkl numpy scipy scikit-learn numexpr funcionó para mí sin tener que eliminar mkl y mkl-service.

Agregando una respuesta a la pregunta de Lee si nomkl será más lento: mkl es una biblioteca Intel kernel kernel y está optimizado a mano para intel cpus. nomkl usa OpenBlas de acuerdo con esto: https://docs.continuum.io/mkl-optimizations/ Parece que mkl es bastante más rápido en muchas operaciones matriciales para intel cpus (ver https://software.intel.com/en-us/articles/performance-comparison-of-openblas-and-intel-math-kernel-library-in-r )
He visto a alguien decir que nomkl es más rápido para AMD cpus (¿quizás porque mkl no funciona correctamente en AMD?)


Si usa conda, intente con estos dos comandos:

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

Debería arreglar tu problema.


Solo quería señalar que Anaconda 4.0.0, enviado con mkl habilitado por defecto, tiene este problema. El problema es, de hecho, con Anaconda, ya que se puede reproducir con la prueba de Python simple a continuación.

El problema real es que Anaconda se vinculó con mkl, pero no con libmkl_core.so, por lo que tiene un símbolo que falta, y se puede ver ejecutando:

$ 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)

No quería desinstalar mkl, ya que me gustaría tener el aumento de rendimiento, así que encontré una solución que funcionó para mí: precargar libmkl_core.so antes de la ejecución.

$ 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'' $



Todas las soluciones proporcionadas anteriormente no funcionaron para mí, pero encontré un buen compromiso:

para alguien que tiene el mismo error y quiere mantener a Anaconda en su computadora, y el acero usa mkl para un buen desempeño del proceso (numpy y scipy), la solución que propongo:

Edite su archivo .bashrc .

Busque algo como export PATH="/home/anaconda2/bin:$PATH" en el archivo.

Ponga un # al principio para comentarlo desde el script: #export PATH="/home/anaconda2/bin:$PATH"

Abra una nueva terminal y debería ejecutar la instalación básica de python.

Me funcionó, espero que sea útil.


Tuve el mismo problema al usar scikit-learn 0.19 y numpy 1.13.3 cuando ejecuto MLPRegressor (y también con un paquete llamado pyearth que ejecuta un algoritmo llamado MARS). Creo que la raíz del problema fue que nuestra python es parte de una instalación de Anaconda, pero scikit-learn y numpy se instalaron a través de pip, y sus expectativas para mkl no deben coincidir.

Desafortunadamente, mi framework está gestionado por algunos administradores de empresas dedicados, no por mí, así que no he conseguido que mi chico intente recompilar numpy todavía. Pero pude encontrar una solución basada en este hilo : Agregar export LD_PRELOAD=/path/to/anaconda/lib/libmkl_def.so:/path/to/anaconda/lib/libmkl_avx.so:/path/to/anaconda/lib/libmkl_core.so:/path/to/anaconda/lib/libmkl_intel_lp64.so:/path/to/anaconda/lib/libmkl_intel_thread.so:/path/to/anaconda/lib/libiomp5.so a mi ~/.bashrc hace que el problema desaparezca Es súper hacky, y estaría mintiendo si dijera que sabía exactamente lo que está haciendo ( pero esto es útil ), así que espero que una recompilación de numpy sea una solución más limpia. Pero al menos funciona.

Tenga en cuenta que es mejor para el rendimiento tener las versiones de estos paquetes que usan mkl. La instalación de las versiones nomkl es una solución alternativa, pero no verdadera.