M1芯片iMac安装支持GPU的XGBoost报错问题咨询
问题1:验证当前安装的XGBoost是否为支持GPU的版本
你遇到的报错已经明确提示XGBoost version not compiled with GPU support,可以直接确认当前1.5.0版本不支持GPU加速。
如果需要主动验证,可以运行以下Python代码查看编译配置:
import xgboost as xgb print(xgb.get_build_config())
- 如果是NVIDIA CUDA架构的GPU,输出中存在
USE_CUDA: 1则说明支持CUDA GPU加速,否则不支持 - 如果是M1系列苹果自研GPU,输出中存在
USE_METAL: 1则说明支持Metal GPU加速,否则不支持
另外你当前安装的是1.5.0版本的XGBoost,该版本本身就没有适配M1芯片的Metal GPU加速能力,仅支持CPU运算。
问题2:在M1芯片iMac上安装支持GPU的XGBoost版本
XGBoost从1.6版本开始新增对苹果Metal架构的GPU支持,2.0及以上版本适配更稳定,安装步骤如下:
- 先卸载现有低版本XGBoost
conda remove xgboost
- 选择以下任意一种方式安装支持Metal的XGBoost
- 方式一:直接通过pip安装官方预编译版本(推荐)
官方针对苹果硅架构的pip包已经默认开启Metal支持,直接运行:
pip install xgboost>=2.0.0
- 方式二:从源码编译自定义版本
如果需要自定义编译参数,可以走源码编译流程:
# 安装编译依赖 conda install cmake libomp clang git # 拉取最新源码 git clone --recursive https://github.com/dmlc/xgboost.git cd xgboost # 配置编译参数开启Metal支持 mkdir build && cd build cmake .. -DUSE_METAL=ON # 编译,调用所有CPU核心加快速度 make -j$(sysctl -n hw.ncpu) # 安装Python包 cd ../python-package pip install .
- 安装完成后使用注意事项
M1芯片的GPU是Metal架构,和NVIDIA的CUDA架构不兼容,你之前代码里设置的predictor="gpu_predictor"是CUDA专属参数,M1上不需要手动指定该参数,只要设置tree_method="hist",XGBoost会自动调用Metal GPU加速。
内容的提问来源于stack exchange,提问作者M. Fire
相关产品推荐
相关产品推荐

