はじめに
Python* (パイソン) は、現在ディープラーニングで注目を集めているプログラミング言語です。ディープラーニング用のライブラリーやフレームワークが Python* は豊富ということもあり、ディープラーニング = Python* と認識されてきているように感じます。C 言語などよりも簡単に書けるため、プログラマーではない研究者の方でも気軽に取り組むことができるからというのも Python* でディープラーニングを行う理由の1つになっています。
しかし、C 言語などと比較すると Python* はとても計算速度が遅いという問題があります。しかも大量の計算を行うディープラーニングを Python* で実行するとなれば特に時間が掛ってしまいます。そこで、この記事では Python* のパフォーマンス向上につながる「インテル® Distribution for Python*」を紹介します。
- 本記事はベータ版の機能を参考にしており、製品版の内容とは異なる可能性があります。ご了承ください。
- インテル® Distribution for Python* は、インテル® Parallel Studio XE にも同梱されています。
インテル® Distribution for Python* とは
インテル® Distribution for Python* (インテル® Python*) とは既存の Python* よりもパフォーマンスが向上するツールです。インテル® Python* の実行環境を使用することで、コードを修正することなくアプリケーションのパフォーマンスを向上させることができます。
【参考】
サポート環境
インテル® Python* | |
---|---|
OS | Windows、Linux、OS X |
バージョン | Python* 2.7、3.5 |
インストールされるコンポーネント
インテル® Python* をインストールすると Python* 実行環境だけではなく、NumPy などのライブラリーも同時にインストールされるため、簡単に環境を構築することができます。
(下記以外のライブラリーやフレームワークなどは各自インストールする必要があります)
また、同時にインテル® MKL などの関数も使用することができます。インテル® MKL の他にも、クラスターシステム向けのインテル® MPI ライブラリーや、マルチスレッド・テンプレート・ライブラリーであるインテル® TBB、ディープラーニング及びビッグデータ解析用のライブラリーであるインテル® DAAL を使用することができます。
Python* | インテル® Distribution for Python* | |
---|---|---|
使用できるコンポーネント |
|
|
高速化や並列化を目的としたパフォーマンス・ライブラリー | – |
インテル® Python* でパフォーマンスが向上する理由
インテル® MKL は、インテルが提供している最適化や並列化された数値演算ライブラリーです。インテル® Python* から NumPy や SciPy を使用すると自動的にインテル® MKL が呼び出されるため、パフォーマンスが大幅に向上します。
速度比較
コレスキー分解や行列積和などの計算を、既存の Python とインテル® Python* で実行し比較を行った結果です。
インテル® Python* に切り替えるだけでもパフォーマンスは向上していますが、プロセッサーのコア数が増えるにつれて、更にパフォーマンスが向上することがわかります。
引用: Intel® Distribution for Python* 2017 Beta
- コード、計算方法、コア数によっては異なる性能となる可能性があります
まとめ
ディープラーニングなどで注目が高まっている Python* ですが、インテル® Distribution for Python* を利用することでインテルのパフォーマンス・ライブラリーの恩恵を享受することができ、簡単にアプリケーションのパフォーマンスを向上させることができる可能性があります。
インテル® Distribution for Python* はインテル® Parallel Studio XE にも同梱されていますので、30日の無料評価版でお試しいただくことも可能です。
今回はインテル® Distribution for Python* を簡単に紹介しましたが、次回は具体的な設定・活用方法に関してご説明していく予定です。