From NVIDIA, “The RAPIDS suite of software libraries gives you the freedom to execute end-to-end data science and analytics pipelines entirely on GPUs. It relies on NVIDIA® CUDA® primitives for low-level compute optimization, but exposes that GPU parallelism and high-bandwidth memory speed through user-friendly Python interfaces.”
GPU Accelerated Data Analytics & Machine Learning
RAPIDS was built around the vision where data scientists could essentially have a conversation with data. Here are the features of RAPIDS.
- Maximum Performance: Drastically improve your productivity with near-interactive data science and overall reducing your training time. What you would typically expect from GPUs.
- Hassle-Free Integration: Ease of use is another important function. Python APIs familiar to users of open-source data science tools like pandas and scikit-learn.
- Open Source: Customizable, extensible, interoperable. Connect existing big data and data science tools to GPUs, supported by NVIDIA and built on Apache Arrow.
- Top Model Accuracy: Designed for production scaling — Increase machine learning model accuracy by iterating on models faster and deploying them more frequently.
The Need for End-to-End Acceleration
GPU acceleration of classical machine learning algorithms, such as gradient boosting, has already become popular. However, previous efforts at GPU-accelerating data science pipelines have focused on individual machine learning libraries and not other crucial interconnecting pieces of the pipeline. This creates a problem. Let’s say your pipeline has three steps:
- Load data
- Clean up the data and perform feature engineering
- Train a classifier
First you load the data into host memory and then perform ETL tasks including data clean-up and feature engineering steps such as filtering, imputation, and generating new features. These steps today are largely done using the CPU. After that you must convert the output of the feature engineering step into the internal memory format of the GPU-accelerated machine learning library and then move the data to GPU memory. Now you can run training and also get a huge speedup on the training step. Finally, you move the data back to host memory and visualize or prepare for deployment.
At the end you get a modest overall speedup, but the copy and convert operations introduce significant overhead due to serialization and deserialization operations and you end up underutilizing the available GPU processing power.
RAPIDS addresses this issue by design as it provides a columnar data structure called a GPU DataFrame, which implements the Apache Arrow columnar data format on the GPU. The RAPIDS GPU DataFrame provides a pandas-like API that will be familiar to data scientists, so they can now build GPU-accelerated workflows more easily.
Collaboration with Open-Source Community
RAPIDS builds on popular open-source projects by adding GPU acceleration to the most popular Python data science tool-chain. To bring additional machine learning libraries and capabilities to RAPIDS, NVIDIA is collaborating with such open-source ecosystem contributors as Anaconda, BlazingDB, Databricks, Quansight and scikit-learn, as well as Wes McKinney, head of Ursa Labs and creator of Apache Arrow and pandas, the fastest-growing Python data science library.
“RAPIDS, a GPU-accelerated data science platform, is a next-generation computational ecosystem powered by Apache Arrow,” McKinney said. “NVIDIA’s collaboration with Ursa Labs will accelerate the pace of innovation in the core Arrow libraries and help bring about major performance boosts in analytics and feature engineering workloads.”
Have any questions about RAPIDS? Contact us directly here.