4

I've been trying to get GPU support to work for xgboost via h2o in a rocker docker container with little success. Progress so far: GitHub, Docker Hub

I have installed CUDA + nvidia-docker on the host machine and CUDA (9.0 - 9.2) in the container. I'm running the container with the following,

nvidia-docker run -d -p 8787:8787 -e USER=tidyverse-gpu -e PASSWORD=tidyverse-gpu --name tidyverse-gpu seabbs/tidyverse-gpu

Base Xgboost works with GPU support in both R and Python (and nvidia-smi returns usage stats etc when run inside the container). When the GPU backend is enabled in h2o.xgboost the following error is returned.

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.

Initially I had not added the CUDA_PATH in the Dockerfile but testing adding this has had no effect.

Sys.getenv("CUDA_PATH")
[1] "/usr/local/cuda"

The h2o startup logs show no issue with the xgboost module (that I can see). I've tried rolling back to CUDA 8.0 but this errors in the latest rocker containers as the gcc version being used is not supported by xgboost.

Any help would be much appreciated as I don't have a clue :)

talonmies
  • 70,661
  • 34
  • 192
  • 269
Sam Abbott
  • 466
  • 2
  • 9
  • Solution at https://discuss.ropensci.org/t/using-the-gpu-backend-in-h2o-xgboost-in-a-rocker-based-docker-container/1561 - needed to remove the stubs with:` rm -r -f /usr/local/cuda/lib64/stubs` – Sam Abbott Jan 30 '19 at 11:47

0 Answers0