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ソースをダウンロード
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)/*の権限変更(一部の人が解決できる)
  • です.
  • もう1つは、このコマンドを使用して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