GPU加速xgboost——win10下配置

16 篇文章 0 订阅
2 篇文章 0 订阅

xgboost是一个非常好的模型工具,但是当遇到数据量比较大的时候迭代的速度会很慢(博主打比赛的时候简直想砸电脑啊),因此就找了点资料配置了GPU加速。

这里面遇到很多坑。

1.使用官网的配置方案

反正这个我从来没成功了,试了n次。我这里就不写了,贴出来链接:

http://xgboost.readthedocs.io/en/latest/build.html#building-with-gpu-support


2.使用知乎大佬的方法

先用cmake生成文件,然后用vs编译,我同样没成功。贴出来链接:

https://zhuanlan.zhihu.com/p/29904369


3.使用别人编译好的xgboost,我这个成功了。

3.1第一步安装vs,我装的是vs14-2015,如果你想装这个版本的话,请确保你把之前的版本卸载干净再装,不然可能出现未知错误,那么坑就多了。

可以从这里找到vs的对应下载链接:https://msdn.itellyou.cn/

3.2安装配置cuda,这个我装的是cuda8,直接到官网下然后安装就可以了,具体可以参考我的另外一篇博文http://blog.csdn.net/voidfaceless/article/details/53711550

3.3下载别人配置好的xgboost

国外有个好心人把配置好的xgboost上传了,几乎每天的版本都会有,链接:http://ssl.picnet.com.au/xgboost/。左边是cpu版,右边是支持gpu加速版。点击需要的版本下载xgboost.dll就可以了

3.3安装xgboost

由于是别人配置好的,安装起来特别简单了。首先下载xgboost源码(其实这里我们不需要用git clone --recursive,因为用的是编译好的dll,因此不需要下载那么完整,只需要python-package完整即可)

git clone --recursive https://github.com/dmlc/xgboost

之后将下载的xgboost.dll库文件放入到master\python-package\xgboost目录,进入master\python-package目录,执行以下命令行

python setup.py install

3.4尽情地享受gpu加速吧

另外,官方提供了一个基准(Benchmarks)

Training time time on 1,000,000 rows x 50 columns with 500 boosting iterations and 0.25/0.75 test/train split on i7-6700K CPU @ 4.00GHz and Pascal Titan X.

i7-6700K的CPU(4.00GHz)和Pascal Titan X,数据集大小为 1,000,000行 x 50列,按0.25/0.75划分测试集和训练集,训练时间如下


tests\benchmark目录下
分别执行

python benchmark.py --tree_method gpu_hist
python benchmark.py --tree_method hist
python benchmark.py --tree_method gpu_exact
python benchmark.py --tree_method exact
我只执行了上面两个,分别是45秒和147秒.

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
XGBoost (eXtreme Gradient Boosting) 是一种常用的机器学习算法,它通过多轮迭代训练弱分类器,最终将多个弱分类器组合成强分类器,从而提高模型的预测精度。XGBoost 在特征工程、分类、回归、排名等方面均有广泛应用。尤其是在 Kaggle 等数据科学竞赛中,XGBoost 也是常用的算法之一。 为了提高 XGBoost 的训练效率和精度,可以利用 GPU 加速 XGBoost 算法。GPU(Graphics Processing Unit)是图形处理器,也是一种并行计算的设备,相较于 CPU(Central Processing Unit),其具有更强的并行计算能力。在机器学习中,许多算法都具有高度的并行性,因此利用 GPU 加速这些算法可以大大提升计算速度和效率。 在 XGBoost 中,GPU 加速是通过 CUDA(Compute Unified Device Architecture)技术实现的。CUDA 是 NVIDIA 公司开发的并行计算平台和 API,它使得 GPU 可以被用于普通计算任务,而不只是用于图形渲染。利用 CUDA 技术,XGBoost 可以将部分计算任务(如梯度计算)交由 GPU 执行,从而提高计算速度。 相较于 CPU 计算,GPU 计算在 XGBoost 中可以提高数倍的计算速度。此外,GPU 加速还可以增加模型的容量,使得 XGBoost 在复杂任务上取得更好的效果。需要注意的是,GPU 加速需要对硬件进行较高的要求,需要具有较高的计算能力和显存容量。 在使用 GPU 加速 XGBoost 时,需要对 XGBoost 进行编译,使得其能够与 CUDA 技术协同工作。在编译完成后,可以通过设置参数来开启 GPU 加速。具体方法可以参考 XGBoost 的官方文档。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值