2016-03-08

追記: 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 のビルドは完了です。