Software/tips

Numenta NuPIC の MacOS X Marvericks でのビルド手順

Github の numenta アカウント NuPIC リポジトリの Getting Started wiki の手順の通りに実行します。

Mac OS X での実行は Running NuPIC on OS X に詳しく記されています。

必要なもの

  • Git (Mac OS X には最初からインストールされている)
  • Python (Mac OS X には最初からインストールされている)
  • Gcc or Clang (Mac OS X には最初からインストールされている)
  • CMake (要インストール。後述)

ビルド手順

  1. OS
    OS X 10.9 Mavericks になっていなかったら更新する。
    ※これ以前のものでビルドするのはかなり厄介。
    実際に作業して確認したバージョンは 10.9.2

  2. ビルドツール
    XCode 5 以上をインストールする。
    App Store からインストール後、アプリケーションのメニューの
    Xcode > Open Developer Tool > More Developer Tools
    で Downloads for Apple Developers の web ページが開くので、
    Command Line Tools (OS X Mavericks) for Xcode
    の最新のものをインストールする。

    実際に作業して確認したバージョンは
    Xcode 5.0.2
    Command Line Tools (OS X Mavericks) for Xcode Late October 2013

  3. homebrew
    ビルドに必要なその他のパッケージをインストールするためhomebrew をインストールし、 homebrew を使って
    ・automake
    ・libtool
    ・cmake
    をインストールする。
    CMake は CMake の web ページから dmg ファイルをダウンロードしてインストールしても良いが、
    Mavericks のセキュリティ設定がデフォルトでは
    「App Store と確認済み開発元からダウンロードしたものしか実行を許可しない』
    状態になっているのを変更してインストールしなければならないので
    homebrew でインストールした方が良い。

    Terminal で以下を実行する。
    $ ruby -e “$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)”
    エラーなくインストールされたら正常実行できる確認を兼ねて更新し環境のチェックを行う。
    $ brew update
    $ brew doctor
    何か問題があったら修正しておき、上記のパッケージをインストールする。
    $ brew install automake libtool cmake

  4. ソースコードダウンロード
    git で checkout する。
    変更を contribute する予定がある場合は github のアカウントを取得しておく。
    $ cd ~
    $ mkdir work
    $ cd work
    $ git clone https://github.com/numenta/nupic.git

  5. 環境変数設定
    ~/.profile
    に nupic のビルドと実行に必要な環境変数を設定する。
    以下の内容を .profile に書き、新規に Terminal を開いて
    $ printenv 
    で反映されていることを確認する。
    全ての shell に反映されてしまうのが嫌な場合は他のファイルに書き、ビルドや実行前に必ず source する。
    # git checkout したソース repository のディレクトリ
    export NUPIC=~/work/nupic
    # NTA のインストール path
    export NTA=$NUPIC/nta/eng
    # 一時ビルドファイルの path
    export BUILDDIR=/tmp/ntabuild
    # ビルドの平行ジョブ数( CPU コア数+1ぐらい)   
    export MK_JOBS=3
    # その他の必要な環境変数を設定する。
    source $NUPIC/env.sh

  6. pip
    Python の Package を管理するツールの pip をインストールする。
    $ sudo easy_install pip

  7. Python library のインストール
    pip で nupic に必要なライブラリをインストールする。
    $ sudo pip install -r $NUPIC/external/common/requirements.txt
    pip 1.5 以上の場合は以下のような option で pip install を実行すると前述の Running NuPIC on OS X にあるが、
    上の option なしの実行で問題ない。
    $ sudo pip install --allow-all-external --allow-unverified PILL --allow-unverified psutil -r $NUPIC/external/common/requirements.txt

  8. nupic のビルド
    ビルドスクリプトを実行する。
    $ $NUPIC/build.sh
    ...
    ...
    ...
    Stdout redirected to; /Users/otsuka/work/nupic/build_system/stdout.txt
    Build successful.
    という表示が出たらビルドは完了。

テスト

ビルドが正常に完了したら、NuPIC が正常に実行できるか確認する。

  • C++ テスト
$ cd $NTA/bin
$ htmtest
...
... 中略
...
-- ALL TESTS PASSES --
$ testeverything
...
... 中略
...
*******************************************************************
* Numenta Unit Test summary
*
* Total categories = 39
* Total tests = 2252
* Total passed   = 2252
* Total disabled = 0
* Total failed   = 0
* Total critical failures = 0
* Success rate = 100
*******************************************************************
  • Python Unit テスト
$ cd $NUPIC
$ $NUPIC/run_tests.sh
============================= test session starts ==============================
platform darwin -- Python 2.7.5 -- pytest-2.4.2 -- /usr/bin/python
plugins: cov, xdist
collected 697 items / 2 skipped 
…
… 中略
...
=================== 687 passed, 12 skipped in 150.86 seconds ===================

注記

CMake を使っているが、XCode の GUI からのビルドはまだうまくいかない模様。

作業時のコマンド・ツール類の version

$ python -V
Python 2.7.5
$ pip -V
pip 1.5.4 from /Library/Python/2.7/site-packages/pip-1.5.4-py2.7.egg (python 2.7)
$ clang -v
Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
Target: x86_64-apple-darwin13.1.0
Thread model: posix
$ brew --version
0.9.5
$ brew list
autoconf     automake     cmake     libtool

BC::labsへの質問は、bc9-dev @ googlegroups.com までお願い致します。
トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   最終更新のRSS
Last-modified: 2014-03-07 (金) 12:59:08 (1743d)