我一直试图在rocker Docker容器中通过h2o的h2o为xgboost工作提供GPU支持,但收效甚微。到目前为止的进展:GitHub,Docker Hub
我已经在主机上安装了CUDA + nvidia-docker,并在容器中安装了CUDA(9.0-9.2)。我正在使用以下命令运行容器,
nvidia-docker run -d -p 8787:8787 -e USER=tidyverse-gpu -e PASSWORD=tidyverse-gpu --name tidyverse-gpu seabbs/tidyverse-gpu
Base Xgboost在R和Python中都支持GPU(并且在容器内运行时nvidia-smi
返回使用情况统计信息等)。在h2o.xgboost
中启用GPU后端后,将返回以下错误。
Illegal argument(s) for XGBoost model: XGBoost_model_R_1548450637489_3. Details: ERRR on field: _backend: GPU backend (gpu_id: 0) is not functional. Check CUDA_PATH and/or GPU installation.
最初,我没有在Dockerfile中添加CUDA_PATH
,但是测试添加它没有任何效果。
Sys.getenv("CUDA_PATH")
[1] "/usr/local/cuda"
h2o
启动日志显示xgboost
模块没有问题(我可以看到)。我尝试回滚到CUDA 8.0,但是xgboost
不支持最新的摇杆容器中的此错误,因为所使用的gcc版本不受支持。
由于我没有任何线索,所以任何帮助将不胜感激:)