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参数。
参考命令行如下:
cd /d D:\python\Anaconda3\Lib\site-packages\xgboost\python-package
4. GPU加速
在xgboost的参数中加入’tree_method’: ‘gpu_hist’,即可使用 GPU加速
这里原本CPU计算需要10min的数据,2min搞定了~~
5 GPU性能查看
我们把文件路径(C:\Program Files\NVIDIA Corporation\NVSMI)加入到环境变量中, 对PATH变量进行编辑,会进入到PATH的列表,再点击添加
然后,我们可以打开cmd,输入指令:
nvidia-smi
其中这个330MiB / 8192MiB就是使用显存占总显存的比例
下方的Processes:就是显示程序的GPU Memory的使用