Hi Tianqi,
Thanks for making this library available (and making it so clean and powerful)!
I built with OpenMP and noticed beautiful performance improvements.
Do you have any plans to add GPU offloading, possibly with standard directives like OpenACC?
Thanks for the comment. The execution pattern of boosted trees are very different from Linear Algebras such as matmult and convolution. It relies a lot on conditional branchings and flexible indirect fetches. While GPU is good at batch loadings and floating points, which are good for algorithms such as neuralnets.
Base on my current experience on GPU(CUDA), I think is algorithm could not be directly ported to GPU and fully utilizing the GPU's power. So we do not have a near term plan.
A fork with GPU support was recently released: https://github.com/dmlc/xgboost/blob/master/plugin/updater_gpu/README.md
Most helpful comment
Thanks for the comment. The execution pattern of boosted trees are very different from Linear Algebras such as matmult and convolution. It relies a lot on conditional branchings and flexible indirect fetches. While GPU is good at batch loadings and floating points, which are good for algorithms such as neuralnets.
Base on my current experience on GPU(CUDA), I think is algorithm could not be directly ported to GPU and fully utilizing the GPU's power. So we do not have a near term plan.