四、 GPU计算
xgboost
支持使用gpu
计算,前提是安装时开启了GPU
支持要想使用
GPU
训练,需要指定tree_method
参数为下列的值:'gpu_exact'
: 标准的xgboost
算法。它会对每个分裂点进行精确的搜索。相对于'gpu_hist'
,它的训练速度更慢,占用更多内存'gpu_hist'
:使用xgboost histogram
近似算法。它的训练速度更快,占用更少内存
当
tree_method
为'gpu_exact','gpu_hist'
时,模型的predict
默认采用GPU
加速。你可以通过设置
predictor
参数来指定predict
时的计算设备:'cpu_predictor'
: 使用CPU
来执行模型预测'gpu_predictor'
: 使用GPU
来执行模型预测
多
GPU
可以通过grow_gpu_hist
参数和n_gpus
参数配合使用。可以通过
gpu_id
参数来选择设备,默认为 0 。如果非0,则GPU
的编号规则为mod(gpu_id + i) % n_visible_devices for i in 0~n_gpus-1
如果
n_gpus
设置为-1
,则所有的GPU
都被使用。它默认为 1 。
多
GPU
不一定比单个GPU
更快,因为PCI
总线的带宽限制,数据传输速度可能成为瓶颈。GPU 计算支持的参数:
parameter gpu_exact gpu_hist subsample ✘ ✔ colsample_bytree ✘ ✔ colsample_bylevel ✘ ✔ max_bin ✘ ✔ gpu_id ✔ ✔ n_gpus ✘ ✔ predictor ✔ ✔ grow_policy ✘ ✔ monotone_constraints ✘ ✔