web-dev-qa-db-fra.com

Installer Scipy avec MKL via PIP

J'utilise PIP pour installer Scipy avec MKL afin d'accélérer les performances. Mon système d'exploitation est Ubuntu 64 bits. En utilisant la solution de cette question , je crée un fichier .numpy-site.cfg 

[mkl]
library_dirs=/opt/intel/composer_xe_2013_sp1/mkl/lib/intel64/
include_dirs=/opt/intel/mkl/include/
mkl_libs=mkl_intel_lp64,mkl_intel_thread,mkl_core,mkl_rt
lapack_libs=

Ce fichier m'aide à installer Numpy avec MKL avec succès. Cependant, en utilisant le même fichier ci-dessus, l’installation de Scipy provoque l’erreur

ImportError: libmkl_rt.so: cannot open shared object file: No such file or directory

J'utilise aussi

export LD_LIBRARY_PATH=/opt/intel/composer_xe_2013_sp1/mkl/lib/intel64

mais le problème est toujours le même.

Quelqu'un sait comment résoudre ce problème? Je ne veux pas installer Scipy manuellement, alors tout le monde me donne quelques astuces pour le réparer.

18
tndoan

Intel a publié des molettes de paquets tels que Numpy, Scipy et Scikit-learn pour PyPI. Ces roues ont été construites lors de la liaison avec Intel MKL et incluent diverses optimisations. 

Si vous voulez que Scipy soit construit avec Intel MKL:

#Remove existing Numpy and/or Scipy:
pip uninstall numpy scipy -y
#Install scipy built with Intel MKL:
pip install intel-scipy

Plus d'informations disponibles ici

5
t7t0t0t7t

J'ai Win10 64Bit avec Python 3.6.2 j'ai installé scipy par http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy

J'ai suivi les étapes suivantes:

  • Étape 1: Désinstallez si vous avez une version précédente de numpy, pip désinstaller numpy
  • Étape 2: Téléchargez numpy-1.13.1 + mkl-cp36-cp36m-win_AMD64.whl avec MKL (bibliothèque du noyau mathématique) depuis le lien ci-dessous, http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy
  • Étape 3: copier le fichier téléchargé dans un autre emplacement et lancer la commande Demander à partir de cet emplacement.
  • Étape 4: exécutez cette commande, pip installer -U numpy-1.13.1 + mkl-cp36-cp36m-win_AMD64.whl
  • Étape 5: Téléchargez maintenant la bibliothèque scipy à partir de, http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy
  • Étape 6: Copiez le fichier téléchargé au même emplacement que numpy Copié.
  • Étape 7: Dans l'invite CMD, exécutez cette commande, pip installer scipy-0.19.1-cp36-cp36m-win_AMD64.whl

Terminé!

5
Prabhu

Si vous rencontrez des problèmes pour installer ou exécuter une version spécifique, désinstallez-le d'abord, puis installez-le.

Étape 1:

pip uninstall -v numpy

Étape 2: télécharger le fichier wheel et installer

pip install -U numpy-1.13.0+mkl-cp36-cp36m-win_AMD64.whl

Dans cet exemple, le nom du fichier de roue est "numpy-1.13.0 + mkl-cp36-cp36m-win_AMD64.whl "

4

Deux ans se sont écoulés depuis que cette question a été posée.

Il existe maintenant des roues numpy/scipy pour linux qui utilisent un openblas compilé pour avx2, afin que vous puissiez obtenir de bien meilleures performances sans créer de paquet. Vous devrez peut-être mettre à niveau pip pour l’obtenir pour installer la roue:

pip install --upgrade pip
pip install numpy scipy

Si vous voulez MKL, vous pouvez installer Anaconda ou Intel Distribution for Python . Ils utilisent conda au lieu de pip pour gérer les packages, mais ils sont gratuits et distribuent des packages contenant toutes les dépendances, y compris MKL.

3
rscohn2

Je suis confronté à ce problème ces dernières semaines sur: Windows 10 64 bits Python 3.5.2

Ma solution de contournement:

Premier: pip install wheel

Suivant: Téléchargez Numpy et Scipy dans le dépôt de Gholke Numpy et SciPy

Ensuite: 

pip install numpy_package.whl

pip install scipy_package.whl

1
Andreas GS

Puisque la question elle-même n'a pas reçu de réponse, laissez-moi tenter le coup ...

Je pense que le problème réside essentiellement dans le fait que les bibliothèques BLAS/LAPACK utilisées sont réparties sur plusieurs emplacements et que numpy ne gère pas cela correctement.

Nous avons corrigé cela dans EasyBuild, où nous construisions numpy/scipy sur Intel MKL depuis un moment maintenant, avec ce correctif: https://github.com/hpcugent/easybuild-easyconfigs/blob/master/easybuild /easyconfigs/n/numpy/numpy-1.8.1-mkl.patch

0
Kenneth Hoste

Pour moi, MKL est venu avec la bibliothèque Scipy par conda install scipy

La solution @ rscohn2 m'a donné un indice pour utiliser des packages.

Pour référence, mon environnement est inclus: Ubuntu, Anaconda, Python 3.6, Scipy 1.1 et MKL 2018.0. 

0
Cloud Cho