Intel MKL est une bibliothèque de traitement numérique à haute vitesse développée par Intel qui ne fonctionne que sur les processeurs Intel. Elle inclut l'algèbre linéaire, la FFT, etc. Numpy / SciPy utilise openblas pour l'algèbre linéaire par défaut. , Intel MKL est plus rapide.
Le contenu de cet article a été vérifié avec Debian 10 (natif / WSL) à l'aide de Python 3.8.0. * Officiellement, Debian n'est pris en charge que pour 8 ou 9, et Debian 10 n'est pas pris en charge. [Sur CentOS 7.7 Ajout du résultat. 2019-11-13]
Suivez les liens «Choisir et télécharger», «Linux *», «Enregistrer et télécharger» de Intel MKL, et du formulaire votre nom et adresse e-mail, etc. Remplissez les éléments requis et soumettez. Dès que vous soumettez, vous recevrez un lien de téléchargement par e-mail (le fichier joint contient la clé mais ne l'a pas utilisée). Ouvrez le lien et sélectionnez celui qui convient à votre environnement et téléchargez.
Il existe également une option pour installer en utilisant apt ou yum.Cependant, je pense personnellement que la version autonome est bien.
Le fichier tgz sera téléchargé, décompressez-le et déplacez-le dedans. Ensuite, vous y trouverez deux fichiers, . / Install.sh
et. / Silent.cfg
. Simplement sudo ./install. L'exécution de sh
démarrera l'installation interactive. Néanmoins, si vous réécrivez . / Silent.cfg
comme il convient et exécutez sudo ./install.sh -s. / Silent.cfg
, l'installation se fera automatiquement. Ira.
Selon l'article Comment installer mkl numpy, la clé d'enregistrement est requise, mais quand je l'ai exécutée, elle n'a pas été demandée. Ainsi, l'édition de . / Silent.cfg
ne doit être réécrite que sous la forme ʻACCEPT_EULA = accept`, sans créer de champ pour la clé d'activation.
Définissez les variables d'environnement nécessaires autour de ~ / .profile
ou ~ / .bashrc
.
export MKL_ROOT_DIR=/opt/intel/mkl
export LD_LIBRARY_PATH=$MKL_ROOT_DIR/lib/intel64:/opt/intel/lib/intel64_lin:$LD_LIBRARY_PATH
export LIBRARY_PATH=$MKL_ROOT_DIR/lib/intel64:$LIBRARY_PATH
export PKG_CONFIG_PATH=$MKL_ROOT_DIR/bin/pkgconfig:$PKG_CONFIG_PATH
PKG_CONFIG_PATH
n'est pas nécessaire pour l'objectif actuel, mais il est utile lorsque vous souhaitez utiliser Intel MKL autre que Python, alors définissez-le en même temps.
Tout d'abord, créez un fichier appelé ~ / .numpy-site.cfg
et écrivez le contenu suivant.
:.numpy-site.cfg
[mkl]
library_dirs = /opt/intel/mkl/lib/intel64/
include_dirs = /opt/intel/mkl/include
mkl_libs = mkl_rt
lapack_libs =
Puis installez avec pip. Pour forcer la compilation au lieu de télécharger des packages binaires
$ pip install --no-binary :all: numpy
$ pip install --no-binary :all: scipy
La construction prend beaucoup de temps (en particulier SciPy, environ 12 minutes sur le bureau), il faut donc attendre patiemment.
__ [Ajout 2019-11-13] __ Quand je l'ai exécuté sur CentOS 7.7, il était aussi vieux que gcc 4.8, et j'ai dû activer le mode C99. Vous pouvez le signaler comme suit.
$ CFLAGS="-std=c99" pip3 install --no-binary :all: numpy
$ CFLAGS="-std=c99" pip3 install --no-binary :all: scipy
$ python3.8
iPython 3.8.0 (default, Oct 15 2019, 23:02:58)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> import numpy as np
>>> np.show_config()
blas_mkl_info:
libraries = ['mkl_rt', 'pthread']
library_dirs = ['/opt/intel/mkl/lib/intel64']
define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
include_dirs = ['/opt/intel/mkl/include']
blas_opt_info:
libraries = ['mkl_rt', 'pthread']
library_dirs = ['/opt/intel/mkl/lib/intel64']
define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
include_dirs = ['/opt/intel/mkl/include']
lapack_mkl_info:
libraries = ['mkl_rt', 'pthread']
library_dirs = ['/opt/intel/mkl/lib/intel64']
define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
include_dirs = ['/opt/intel/mkl/include']
lapack_opt_info:
libraries = ['mkl_rt', 'pthread']
library_dirs = ['/opt/intel/mkl/lib/intel64']
define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
include_dirs = ['/opt/intel/mkl/include']
>>>
>>> from scipy import show_config
>>> show_config()
lapack_mkl_info:
libraries = ['mkl_rt', 'pthread']
library_dirs = ['/opt/intel/mkl/lib/intel64']
define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
include_dirs = ['/opt/intel/mkl/include']
lapack_opt_info:
libraries = ['mkl_rt', 'pthread']
library_dirs = ['/opt/intel/mkl/lib/intel64']
define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
include_dirs = ['/opt/intel/mkl/include']
blas_mkl_info:
libraries = ['mkl_rt', 'pthread']
library_dirs = ['/opt/intel/mkl/lib/intel64']
define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
include_dirs = ['/opt/intel/mkl/include']
blas_opt_info:
libraries = ['mkl_rt', 'pthread']
library_dirs = ['/opt/intel/mkl/lib/intel64']
define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
include_dirs = ['/opt/intel/mkl/include']
>>>
Recommended Posts