[PYTHON] Wie man Scicit-Learn wie Conda Numpy beschleunigt

Kürzlich wurde ein wenig darüber gesprochen, dass Numpy, das mit conda eingegeben wurde, schneller funktioniert als Numpy, das mit pip eingefügt wurde (obwohl der ursprüngliche Artikel nicht neu ist). In diesem Artikel werde ich erklären, dass Scicit-Learn auch schneller funktionieren kann, wenn Sie eine Installation entwickeln.

Einführung

Artikel: "Anacondas NumPy scheint schnell zu sein, also habe ich es versucht." https://tech.morikatron.ai/entry/2020/03/27/100000

Ich habe es in letzter Zeit oft auf der Twitter-Timeline gesehen (obwohl der Originalartikel im März 2008 geschrieben wurde).

Es wird gesagt, dass Numpy, das von conda installiert wird, schneller ist als Numpy, das von pip installiert wird.

Warum ist es so schnell?

Im obigen Artikel verwendet die CPU "Intel Core i7-9750H".

Die Spezifikationen dieser CPU sind wie folgt. https://www.intel.co.jp/content/www/jp/ja/products/processors/core/i7-processors/i7-9750h.html

Es ist ein Fehler, dass ** "Intel® SSE4.1, Intel® SSE4.2, Intel® AVX2" ** in ** "Befehlssatzerweiterung" ** dieser Spezifikation beschrieben wird.

** AVX2 ** ist in der Befehlssatzerweiterung enthalten.

Darüber hinaus ist ** AVX-512 ** auch in der relativ neuen Hochleistungs-Intel-CPU installiert.

Für AVX ist die folgende Seite detailliert, sie ist jedoch der Nachfolger der Anweisung zur Streaming-SIMD-Erweiterung.

** "Der Punkt ist eine Funktion, die mehrere Operationen mit einer Anweisung ausführen kann" **

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) ** ist die Funktion der Intel-CPU, die mathematische Berechnungen mit AVX2 oder höher dieses AVX beschleunigt. https://www.xlsoft.com/jp/products/intel/perflib/mkl/index.html

Durch verschiedene Berechnungen mit AVX2 oder AVX-512 wird die Geschwindigkeit erhöht.

Wenn die CPU AVX unterstützt, wird Numpy, das von conda installiert wurde, mit dieser Intel MKL berechnet, sodass die Verarbeitung schneller ist.

Intels harte Arbeit

In der GPU-Ära arbeitet Intel auch hart, um 2017, Wir haben die Bibliotheken Numpy und sckit-learn ** veröffentlicht, die die Beschleunigung auf Intel-CPUs, einschließlich Intel MKL, unterstützen.

pip install intel-scikit-learn https://pypi.org/project/intel-scikit-learn/

pip install intel-numpy https://pypi.org/project/intel-numpy/

Mit diesen können Sie die Hochgeschwindigkeitsversion von Anfang an verwenden, auch wenn Sie sie mit pip installieren.

Diese Versionen wurden auch vor langer Zeit von Intel veröffentlicht, Die Version hat das Original von Numpy und sklearn nicht eingeholt und wird daher nicht beibehalten Wir empfehlen, diese nicht zu verwenden.

Beschleunigen Sie das Scikit-Lernen

Der erste Artikel, den ich vorstellte, "Anacondas NumPy scheint schnell zu sein, also habe ich es versucht." https://tech.morikatron.ai/entry/2020/03/27/100000

Auch im Text von

Verschiedene andere Module haben Intel MKL übernommen. Toll! NumPy NumExpr SciPy Scikit-Learn Tensorflow… In Windows handelt es sich um ein separates Paket namens tensorflow-mkl. PyTorch… Es scheint, dass Intel MKL auch über Pip verwendet wird.

Wie Sie sehen können, wird bei der Installation mit conda automatisch eine schnellere Version installiert, die Intel MKL verwendet.

Wenn Sie jedoch möchten, dass es am schnellsten funktioniert, befolgen Sie die Anweisungen auf der Installationsseite von scikit-learn. https://scikit-learn.org/stable/install.html

Auf dieser Seite 「Third party distributions of scikit-learn」 Geschrieben in,


「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.


Wenn Sie sckit-learn auf den Intel Conda-Kanal setzen, nicht nur Intel MKL, sondern auch Einige Scikit-Learn-Prozesse werden durch Intel Multi-Core-optimierte Funktionsverarbeitung ersetzt.

Wenn Sie also die schnellste Version von scicit-learn verwenden möchten,

$ conda install scikit-learn

nicht,

$ conda install -c intel scikit-learn

Es wird empfohlen, mit zu installieren (in einer CPU-Umgebung, die mit Intel AVX2 oder höher kompatibel ist).

schließlich

AWS, Deep Learning-Images und Azure DSVM (Data Science Virtual Machines) werden alle auf der Grundlage von Bedingungen verwaltet.

Und scikit-learn ist in conda installiert.

Ich weiß nicht, ob es sich um Intel-optimierte Versionen handelt (bitte lassen Sie es mich wissen, wenn jemand es weiß).

Wenn Sie die virtuelle Umgebung mit conda selbst neu erstellen, können Sie die oben genannte Hochgeschwindigkeitsversion installieren ... (Sie müssen die CPU des IaaS-Computers überprüfen, um festzustellen, ob er AVX2 unterstützt. Wenn es sich um einen einfachen Computer handelt, unterstützt er möglicherweise nur AVX.)

Wie oben erwähnt, war es eine Methode, um das Lernen von Wissenschaftlern wie Conda Numpy zu beschleunigen. (Ich bin nicht sehr stark in Bezug auf die CPU, bitte kommentieren Sie, wenn Sie einen Fehler machen)

Bemerkungen

【Übermittlung von Informationen】 Kürzlich habe ich auf Twitter Informationen zu KI, Unternehmen und Management veröffentlicht, z. B. Artikel und Websites, die ich interessant fand, sowie Eindrücke von Büchern, die ich gelesen habe.

Yutaro Ogawa @ISID_AI_team https://twitter.com/ISID_AI_team

Die Informationen, die ich betrachte, sind interessant und wichtig! Ich teile, was ich dachte.

[Andere] Das von mir geleitete Entwicklungsteam der AI-Technologieabteilung sucht Mitglieder. Wenn Sie interessiert sind, klicken Sie bitte hier

[Haftungsausschluss] Der Inhalt dieses Artikels selbst ist die Meinung / Übermittlung des Autors, nicht die offizielle Meinung des Unternehmens, zu dem der Autor gehört.


Recommended Posts

Wie man Scicit-Learn wie Conda Numpy beschleunigt
So beschleunigen Sie Python-Berechnungen
Wie man die schöne Suppeninstanziierung beschleunigt
Unverzichtbar, wenn Sie Python verwenden! Wie man Numpy benutzt, um Berechnungen zu beschleunigen!
Wie benutzt man numpy?
So bedienen Sie NumPy
Wie man schneller schreibt, wenn man numpy wie deque verwendet
So installieren Sie mkl numpy
Wie man Conda fernhält
Numba als Python zu beschleunigen
So erstellen Sie ein Conda-Paket
Project Euler 4 Versuch zu beschleunigen
[DRF] Snippet zur Beschleunigung von PrimaryKeyRelatedField
scikit-learn Verwendung der Zusammenfassung (maschinelles Lernen)
So richten Sie SVM mit Optuna ein
So installieren Sie NumPy auf Raspeye
So beschleunigen Sie die Anwendungsmethode von Pandas mit nur einem Satz (mit Verifizierungsberechnung)
So erstellen Sie große Dateien mit hoher Geschwindigkeit
So richten Sie eine zufällige Gesamtstruktur mit Optuna ein
So installieren Sie pip, numpy auf Autodesk MAYA
Verwendung von Tweepy ~ Teil 2 ~ [Folgen, Gefällt mir usw.]
So messen Sie die Leitungsgeschwindigkeit vom Terminal aus
So richten Sie eine zufällige Gesamtstruktur mit Optuna ein
So richten Sie einen lokalen Entwicklungsserver ein
[Python] Geben Sie Ihr Bestes, um SQL Alchemy zu beschleunigen
Wie man Python für Anfänger schneller macht [numpy]
So richten Sie die Authentifizierung mit öffentlichem Schlüssel mit ssh ein
Versuch und Irrtum, um die Erzeugung von Wärmekarten zu beschleunigen
Versuch und Irrtum, um Android-Screenshots zu beschleunigen
So richten Sie eine Python-Umgebung mit pyenv ein
Die Entscheidung von scikit-learn Wie man ein Holzmodell visualisiert
So richten Sie die Cython-Umgebung ein und kompilieren sie
Versuchen Sie, Sudoku mit explosiver Geschwindigkeit mit Numpy zu lösen