mac上XGBoost多线程版本安装[mac][high sierra]

本文最后更新于2017/12/28,看起来很多,实际安装命令很少,多数内容在总结安装过程中可能出现的问题。

各版本情况:

mac:10.13.2

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的时候需要制指定这个参数,不过从gcc7不需要了。如果编译的时候让gcc使用openMP,需要加上-fopenmp参数。

如果遇到错误看这里:

  • 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可以解决,但是更新后无法解决。可以尝试两个方法:
    • 一个是sudo chown -R $(whoami) $(brew --prefix)/*更改权限(部分人可以解决)
    • 另一个是使用这条命令重新安装brew/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)",基本上都可以解决。详细说明见这里

3 编译

cd xgboost
# 拷贝配置文件
cp make/minimum.mk ./config.mk;

这里我们要使用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/*,找到gcc和g++的位置,让CC和CXX等于绝对路径。

然后使用make -j4编译即可。

4 添加进python环境

# 使用如下命令添加进当前python环境
# 当前目录在xgboost下
cd python-package
python setup.py install

5 使用多线程

你以为安装完了就完了,并没有。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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值