Récemment, on a un peu parlé du fait que Numpy entré avec conda fonctionne plus vite que Numpy inséré avec pip (bien que l'article original ne soit pas récent). Dans cet article, j'expliquerai que scikit-learn peut également fonctionner plus rapidement si vous concevez une installation.
Article, "NumPy d'Anaconda semble être rapide, alors je l'ai essayé." https://tech.morikatron.ai/entry/2020/03/27/100000
Je l'ai vu plusieurs fois récemment sur la chronologie de Twitter (bien que l'article original ait été écrit en mars 2008).
On dit que Numpy installé par conda est plus rapide que Numpy installé par pip.
Dans l'article ci-dessus, le processeur utilise «Intel Core i7-9750H».
Les spécifications de cette CPU sont les suivantes. https://www.intel.co.jp/content/www/jp/ja/products/processors/core/i7-processors/i7-9750h.html
C'est une erreur que ** «Intel® SSE4.1, Intel® SSE4.2, Intel® AVX2» ** soit décrit dans ** «Extension du jeu d'instructions» ** de cette spécification.
** AVX2 ** est inclus dans l'extension du jeu d'instructions.
En outre, ** AVX-512 ** est également installé dans le processeur Intel hautes performances relativement récent.
Pour AVX, la page suivante est détaillée, mais elle succède à l'instruction d'extension SIMD en continu.
** "Le point est une fonction qui peut exécuter plusieurs opérations avec une seule instruction" **
https://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%88%E3%83%AA%E3%83%BC%E3%83%9F%E3%83%B3%E3%82%B0SIMD%E6%8B%A1%E5%BC%B5%E5%91%BD%E4%BB%A4
** Intel MKL (Math Kernel Library) ** est la fonction du processeur Intel qui accélère les opérations mathématiques en utilisant AVX2 ou supérieur de cet AVX. https://www.xlsoft.com/jp/products/intel/perflib/mkl/index.html
En effectuant divers calculs avec AVX2 ou AVX-512, il accélère.
Si le processeur prend en charge AVX, Numpy installé par conda sera calculé à l'aide de cet Intel MKL, le traitement sera donc plus rapide.
À l'ère du GPU, Intel travaille également dur, vers 2017, Nous avons publié les bibliothèques Numpy et sckit-learn ** qui prennent en charge l'accélération sur les processeurs Intel, y compris Intel MKL.
pip install intel-scikit-learn https://pypi.org/project/intel-scikit-learn/
pip install intel-numpy https://pypi.org/project/intel-numpy/
Avec ceux-ci, vous pouvez utiliser la version haute vitesse depuis le début même si vous l'installez avec pip.
Ces versions ont également été publiées par Intel il y a longtemps, La version n'a pas rattrapé le Numpy et sklearn d'origine, et elle n'est pas maintenue, donc Nous ne recommandons pas de les utiliser.
Le premier article que j'ai présenté, "NumPy d'Anaconda semble être rapide, alors je l'ai essayé." https://tech.morikatron.ai/entry/2020/03/27/100000
Même dans le texte de
Divers autres modules ont adopté Intel MKL. Génial! NumPy NumExpr SciPy Scikit-Learn Tensorflow… Sous Windows, il s'agit d'un package séparé appelé tensorflow-mkl. PyTorch… Il semble qu'Intel MKL soit également utilisé via pip.
Comme vous pouvez le voir, lorsque vous installez avec conda, une version rapide qui utilise Intel MKL est installée sans autorisation.
Cependant, si vous souhaitez le faire fonctionner le plus rapidement possible, suivez les instructions de la page d'installation de scikit-learn. https://scikit-learn.org/stable/install.html
Sur cette page 「Third party distributions of scikit-learn」 Écrit en,
「Intel conda channel」 Intel conda channel Intel maintains a dedicated conda channel that ships scikit-learn:
$ conda install -c intel scikit-learn This version of scikit-learn comes with alternative solvers for some common estimators. Those solvers come from the DAAL C++ library and are optimized for multi-core Intel CPUs.
Note that those solvers are not enabled by default, please refer to the daal4py documentation for more details.
Compatibility with the standard scikit-learn solvers is checked by running the full scikit-learn test suite via automated continuous integration as reported on https://github.com/IntelPython/daal4py.
Si vous mettez sckit-learn sur le canal Intel conda, non seulement Intel MKL mais aussi Certains traitements scikit-learn sont remplacés par le traitement des fonctions optimisées Intel multicœur.
Donc, si vous souhaitez utiliser la version la plus rapide de scicit-learn,
$ conda install scikit-learn
ne pas,
$ conda install -c intel scikit-learn
Il est recommandé d'installer avec (dans un environnement CPU compatible avec Intel AVX2 ou supérieur).
AWS, les images Deep Learning et Azure DSVM (Data Science Virtual Machines) sont tous gérés sur la base de conda.
Et scikit-learn est installé dans conda.
Je ne sais pas si ce sont des versions optimisées d'Intel (s'il vous plaît laissez-moi savoir si quelqu'un sait).
Si vous recréez vous-même l'environnement virtuel avec conda, vous pouvez installer la version haute vitesse ci-dessus ... (Vous devez vérifier le processeur de la machine IaaS pour voir si elle prend en charge AVX2. S'il s'agit d'une machine facile, elle ne peut prendre en charge que AVX)
Comme mentionné ci-dessus, c'était une méthode pour accélérer l'apprentissage scicit comme Conda Numpy. (Je ne suis pas très fort autour du processeur, alors veuillez commenter si vous faites une erreur)
【Transmission d'informations】 Récemment, j'ai publié sur Twitter des informations sur l'IA, les affaires et la gestion, telles que des articles et des sites que j'ai trouvés intéressants et des impressions de livres que j'ai lus.
Yutaro Ogawa @ISID_AI_team https://twitter.com/ISID_AI_team
Les informations que je regarde sont intéressantes et importantes! Je partage ce que je pensais.
[Clause de non-responsabilité] Le contenu de cet article lui-même est l'opinion / la transmission de l'auteur, et non l'opinion officielle de la société à laquelle l'auteur appartient.
Recommended Posts