追記: 2016-09-27 最新のビルド手順は こちら に記載しています。
いつのまにやら XGBoost のビルド手順が変更されていたので、メモしておきます (と言っても、 Installation guide に書いていることをほとんどそのまま日本語に直しただけですけどね)。
リポジトリの clone
手元に XGBoost の git リポジトリが存在しない場合は、以下のコマンドで submodule 含めて clone してしまいましょう。
git clone --recursive https://github.com/dmlc/xgboost
もし手元にリポジトリが存在する場合は、 git pull
したのちに
git submodule init
git submodule update
として、submodule を手元に持ってきます。
XGBoost のビルド
clone したリポジトリに cd
して、次の作業をします。
マルチスレッド非対応版で構わない場合
単に
cp make/minimum.mk ./config.mk
make -j4
とすれば OK です。
マルチスレッド対応版が欲しい場合
Installation guide 曰く、マルチスレッド (OpenMP) 対応した XGBoost をビルドするには、OpenMP-enabled なコンパイラである gcc-5.x.x が必要になるとのことです。なのでまず先に、 Homebrew で gcc をインストールしておきます (時間がかかるので、お茶でも飲んで待ちましょう)。
brew install gcc --without-multilib
なお、Homebrew で gcc-5.x.x をインストールしても gcc
のコマンドが置き換わるわけではなく、 gcc-5
という名前でインストールされることに注意が必要です。そのため、Installation guide の手順をなぞっただけではマルチスレッド対応版の XGBoost をビルドすることはできません。
ここでは、Installation guide にある make/config.mk
を単に cp
する手順の代わりに、同ファイルで定義している CC
および CXX
をそれぞれ gcc-5
, g++-5
に置き換えてコピーし、make
する手順を紹介します。
cat make/config.mk | sed -e 's/# export CC = gcc/export CC = gcc-5/' | sed -e 's/# export CXX = g++/export CXX = g++-5/' >./config.mk
make -j4
xgboost4j のビルド
xgboost4j のビルドについては、以前の手順 よりハマりどころがなくなって楽になりました。詳しい手順は doc/jvm/index.md に書かれているとおりですが、ここでは次のように mvn package install
して、ローカルの maven リポジトリにインストールしてしまいます (spark の依存が入っているため、最初の mvn install
の実行でかなり時間がかかります。二杯目のお茶でも飲んで、待ちましょう)。
cd jvm-packages
./create_jni.sh
mvn package install
以上で xgboost4j のビルドは完了です。