xgboost模型在跑大数据集时速度堪忧,正好最近配置了一块RTX2070,在网上搜了颇多资料利用GPU加速xgboost,在这里做一个归纳整理;

第一份资料完整阐述了GPU配置的整个过程,先用cmake生成文件,然后用vs编译,这里完成的操作其实就是生成一份xgboost.dll文件,国外有个好心人把配置好的xgboost上传了,这样就简单了。

1. 安装配置CUDA

CUDA安装配置还是蛮简单的,不多加阐述,可参考资料:
Windows10 64Bit完美配置Theano并实现GPU加速并解决((CNMeM is disable,CuDNN not available))

2. 下载别人配置好的xgboost

http://ssl.picnet.com.au/xgboost/。左边是cpu版,右边是支持gpu加速版。点击需要的版本下载xgboost.dll就可以了

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

这里需要跳转到master\python-package目录,可参考下列方法跳转目录

从当前目录下跳转到不同分区路径d:\的时候,cd d:\没有成功,当前目录没有发生改变; 当添加了一个参数 /d之后,命令成功地执行了。原来,要跳转到不同分区的时候,需要添加强制跳转参数 /d 。但是,如果进入的是当前目录的子目录,则可以不使用 /d参数。

gpu 乘加 gpu x_gpu 乘加

参考命令行如下:

cd /d D:\python\Anaconda3\Lib\site-packages\xgboost\python-package

4. GPU加速

在xgboost的参数中加入’tree_method’: ‘gpu_hist’,即可使用 GPU加速

gpu 乘加 gpu x_机器学习_02


这里原本CPU计算需要10min的数据,2min搞定了~~

gpu 乘加 gpu x_python_03

5 GPU性能查看

我们把文件路径(C:\Program Files\NVIDIA Corporation\NVSMI)加入到环境变量中, 对PATH变量进行编辑,会进入到PATH的列表,再点击添加
然后,我们可以打开cmd,输入指令:

nvidia-smi

其中这个330MiB / 8192MiB就是使用显存占总显存的比例

下方的Processes:就是显示程序的GPU Memory的使用

gpu 乘加 gpu x_python_04