Mac上XGBoostマルチスレッドバージョンインストール[high sierra]
2941 ワード
本文は最後に2017-12-28に更新され、多くのように見え、実際のインストールコマンドは少なく、多くの内容がインストール中に発生する可能性のある問題をまとめています.
各バージョンの状況:
mac:10.13.2(high sierra) XGBoost:0.6 gcc:7.2
xgboostのインストールについては、公式ドキュメント:Installation Guideを参照できますが、macを使用する学生は、デフォルトでpipを使用してインストールされているxgboostはマルチスレッドではなく、gccを更新せずに直接ソースコードからコンパイルされているものもマルチスレッドではないことに注意してください.マルチスレッドバージョンのxgboostのhigh sierra(アップルが2017.9.20で発売)へのインストールについて説明します.
1 XGBoostソースをダウンロード
マルチスレッドバージョンを使用する必要がない場合は、次のコマンドを実行してコンパイルを完了します.
2 gcc取付
注意、もし比較的に長い前のインストールブログを見て、通常gccの後ろに
3間違いがあったらここを見て(選択) は、 です.もう1つは、このコマンドを使用して
4コンパイル
ここではgccを使用してコンパイルを完了します.前のステップではgccをインストールしましたが、gccはデフォルトで使用されているわけではありません.
または、
その後、
5 python環境に追加
6マルチスレッドの使用
インストールが終わったら終わりだと思っていますが、ありません.mac版では、
Reference
1.http://blog.csdn.net/kamendula/article/details/53166247 2.https://stackoverflow.com/questions/36211018/clang-error-errorunsupported-option-fopenmp-on-mac-osx-el-capitan-buildin 3.https://github.com/kickstarter/laptop/pull/49
各バージョンの状況:
mac:10.13.2(high sierra) XGBoost:0.6 gcc:7.2
xgboostのインストールについては、公式ドキュメント:Installation Guideを参照できますが、macを使用する学生は、デフォルトでpipを使用してインストールされているxgboostはマルチスレッドではなく、gccを更新せずに直接ソースコードからコンパイルされているものもマルチスレッドではないことに注意してください.マルチスレッドバージョンのxgboostのhigh sierra(アップルが2017.9.20で発売)へのインストールについて説明します.
1 XGBoostソースをダウンロード
git clone --recursive https://github.com/dmlc/xgboost
マルチスレッドバージョンを使用する必要がない場合は、次のコマンドを実行してコンパイルを完了します.
cd xgboost; cp make/minimum.mk ./config.mk; make -j4
2 gcc取付
# brew gcc, 7.2(2017.12.28)
# ,
brew install gcc
注意、もし比較的に長い前のインストールブログを見て、通常gccの後ろに
--without-multilib
を加えて、字面の意味はマルチスレッドを使わないと感じて、どうしてこのようにしますか?gccのmultilibとmacシステムのopenMPが衝突するため、以前はgccをインストールする際にこのパラメータを指定する必要があったが、gcc 7からは不要となった.コンパイル時にgccにopenMPを使用させる場合は、-fopenmpパラメータを追加する必要があります.3間違いがあったらここを見て(選択)
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
この問題は通常macシステムが更新されると発生し、ここに限らず、多くの場合この問題をトリガーし、xcode-select --install
を使用してプラグインをインストールすればよい.Error: /usr/local must be writable!
またはヒント/usr/local
は権限がなく、high sierra以前のバージョンsudo chown -R $(whoami) /usr/local
で解決できますが、更新後は解決できません.2つの方法を試してみてください.sudo chown -R $(whoami) $(brew --prefix)/*
の権限変更(一部の人が解決できる)brew/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
を再インストールし、基本的に解決できます.詳細はこちら4コンパイル
cd xgboost
#
cp make/minimum.mk ./config.mk;
ここではgccを使用してコンパイルを完了します.前のステップではgccをインストールしましたが、gccはデフォルトで使用されているわけではありません.
make -4j
を直接使用してコンパイルすると、-fopenmp
のエラーに遭遇します.なぜなら、macシステム自体のgccは実はclangであるからだ.端末入力gcc
は、プロンプト情報を参照するか、またはgcc -v
を入力して参照することができる.では、私たちはどのように使用して、あなたがコピーしたconfig.mk
ファイルを編集します.次のように変更します.# export CC = gcc
# export CXX = g++
# ===>
export CC = gcc-7 # , 。
export CXX = g++-7
または、
ls /usr/local/bin/*
を使用して、CCおよびCXXが絶対パスに等しくなるように、gccおよびg++の位置を見つける.その後、
make -j4
を使用してコンパイルすればよい.5 python環境に追加
# python
cd python-package
python setup.py install
6マルチスレッドの使用
インストールが終わったら終わりだと思っていますが、ありません.mac版では、
nthread
というパラメータを手動で指定する必要があります.-1を使用しても、最適なスレッドの数を自動的に選択することはできません.(2017.12.28はこんな感じ)Reference
1.http://blog.csdn.net/kamendula/article/details/53166247 2.https://stackoverflow.com/questions/36211018/clang-error-errorunsupported-option-fopenmp-on-mac-osx-el-capitan-buildin 3.https://github.com/kickstarter/laptop/pull/49