Is training an XGBoost model on a GPU limited by the GPU's memory or can datasets bigger than the GPU's VRAM be trained on the GPU?

[Migrated from https://github.com/dmlc/xgboost/issues/3558]

I’ve searched for the above question and was not able to find any answers so I have posted this question to stackoverflow.

The reason why this question is important is that not everyone has a GPU and it is helpful to understand how important a GPU’s VRAM is prior to making a purchase.

Yes, the dataset must fit into the GPU memory. The gpu_hist algorithm compresses the dataset to squeeze more rows into the GPU memory, but at the end of day all data rows must fit on GPU.

@RAMitchell Does gpu_hist divide the data matrix among multiple GPUs? So if the user has 4 GPUs, he/she can train on a dataset that’s 4x the GPU memory?

And yes, data gets partitioned across GPUs, so more GPUs allows you to run bigger datasets.