[17/07/18 23:28 更新]
以下は、debian jessie でインストールした方法である。多分、他のOSでも似たりよったりだろう。
まずは、MXNetのライブラリのビルド。 基本的には、Installing MXNet (http://mxnet.io/get_started/install.html) の Build from Source の通り。
aptでbuild-essential git libopenblas-dev libopencv-dev インストール。
[うちの環境では、libopencv-devが破損あつかいで、synapticで解決できず、
$ sudo aptitude install libopencv-dev
で2番目の解決を選んで、backportsしたライブラリのいくつかをダウングレイドした。もちろん、問題なくインストールできるなら、それでOK。
]
次に、本体をダウンロードしてライブラリをビルド。${HOME}/workなどで作業すると、ホームディレクトリ直下を汚染しなくてすむ。
$ git clone --recursive https://github.com/dmlc/mxnet
$ cd mxnet
ここで、MKL (Intel® Math Kernel Library) のサポートも試してみる。インテルのCPUで外部GPUを使っていない場合に、特に有効なようだ。体感的には、10分の計算が10秒で出来るくらいの効果がある。
MKL サポートのためには、まず、/usr/localに書き込めるようにする必要がある。debian では/usr/localはroot:staffになってるので、自分をstaffの group に加えればよい。
$ sudo adduser user staff
ここでuserは、自分のユーザ名である。
[2017年7月18日 追記: これは、次にログインしたときから有効]
[debian系以外では、いろいろ違う対処になるはず]
その後、make/config.mk 編集する。
USE_MKL2017 = 1
USE_MKL2017_EXPERIMENTAL = 1
これで、次のステップに進めば、自動的に MKL をダウンロードして、準備してくれる。
次に、ビルド。
$ make -j $(nproc) USE_OPENCV=1 USE_BLAS=openblas
これで、./libにlibmxnet.soが出来てるはず。
MKL を使う場合は、
$ sudo ldconfig
とする。そうしないと、ライブラリを見つけてくれない。
Perl Package は、Installing MXNet on Ubuntu (http://mxnet.io/get_started/ubuntu_setup.html) を参考。
aptでlibmouse-perl pdl cpanminus swig libgraphviz-perlをインストール。
[新しい方がよいと思って、swig3.0にするとダメ。/usr/bin/swigが出来てくれない。]
本家ではPerl Packageを${HOME}/perl5にインストールする方法を書いてるが、ここでは、${HOME}にインストールする方法を書いておく。こうすると、ホームディレクトリの下に、bin、lib、manというディレクトリが出来ると思うが、それが嫌でない人むけ。
まず、cpanmでFunction::Parametersをインストール。本家では、
$ cpanm -q -L "${HOME}" Function::Parameters
といった感じだが、
$ sudo cpanm Function::Parameters
でもよい。
あとは、perl-package/以下のAI-MXNetCAPI/、AI-NNVMCAPI/、AI-MXNet/をこの順番で訪れて、それぞれで、
$ perl Makefile.PL INSTALL_BASE=${HOME}
$ make install
これで、${HOME}/lib/perl5/AI/にMXNet.pmが出来てる。
この構成だと、環境変数PERL5LIBに${HOME}/lib/perl5を指定するか、perlスクリプト内で、
use lib "$ENV{HOME}/lib/perl5";
とする必要がある。以下の説明では、後者の方法を採用する。(他にもいくつか方法があるけど)
[libmxnet.soを適切な場所に置いてcpanmを使ってもいいかも知れないが、ちゃんとは試していない。]
[次の「状況説明」へ] [「PerlとMXNetでディープ・ラーニング」に戻る] [「あえてのPerl」に戻る]