In this demo, we show an end-to-end workflow of rapids dask-cudf
+ dask-glm
(doc) LogisticRegression
on mutliple GPUs.
Experiments are done on a DGX-1
with 8xGPUs
and 40-core CPUs
.
With the HIGGS dataset, the GPU solution achieves 14x speedup over CPU using the lbfgs solver.
To get a more comprehensive speedup measurement, we run dask-glm
on vared sizes of random synthetic data and the GPU solution achieves up to 27x speedup over CPU.
Multi-GPU support of dask-glm is enabled by recent efforts of allowing cupy dask arrays as inputs. dask/dask-glm#87 and dask/dask-glm#89
dask-glm offers 3 estimators:
- LinearRegression
- LogisticRegression
- PoissonRegression
and 5 solvers:
- admm,
- gradient_descent,
- newton,
- lbfgs,
- proximal_grad
Currently, all 3 estimators and 5 algorithms work seamlessly with dask cupy arrays
and dask-cudf
on multiple GPUs.
- conda create -n rapids-0.17 -c rapidsai-nightly -c nvidia -c conda-forge -c defaults rapids=0.17 python=3.7 cudatoolkit=10.2
- conda activate rapids-0.17
- pip install git+https://github.com/dask/dask
- pip install matplotlib
- git clone https://github.com/dask/dask-glm
- cd dask-glm
- pip install -e .