RAFT
Last updated
Copyright Continuum Labs - 2023
Last updated
RAPIDS RAFT (Reusable Abstractions for Fundamental Tasks) is a library of highly optimised building blocks for developing machine learning (ML) and data analytics algorithms on GPUs.
It provides a set of reusable computational patterns that address common bottlenecks in these domains, making it easier for developers to create high-performance applications without worrying about low-level optimisations.
Purpose
RAFT aims to remove common computational bottlenecks in ML and data analytics by providing highly optimised, reusable components that can be used as building blocks for developing new algorithms or accelerating existing libraries.
Categories
RAFT covers various categories, including data formats, dense and sparse operations, spatial operations (e.g., nearest neighbours), basic clustering, iterative solvers, and statistics.
Performance
RAFT components are continuously optimised for new GPU architectures, ensuring that developers always get the best performance out of their hardware without having to make low-level optimisations themselves.
Consistency
RAFT provides a consistent experience across different levels of the stack, from a header-only C++ template library to a shared library with precompiled template specialisations and a Python API (PyLibRAFT).
Resource management
RAFT uses a objects to manage GPU-specific resources like CUDA streams, stream pools, and handles to various CUDA libraries, making it easier for developers to configure and manage these resources.
Multi-dimensional data
RAFT adopts the mdspan (multi-dimensional non-owning view) and mdarray (memory-owning counterpart to mdspan) from the C++23 STL standard, providing a clean and consistent API for representing and manipulating multi-dimensional data.
Interoperability
PyLibRAFT can interoperate with any library that supports the cuda_array_interface (CAI), such as PyTorch, CuPy, Numba, TensorFlow, and JAX, making it easy to integrate RAFT into existing workflows.
In summary, RAFT is a powerful tool for developers looking to create high-performance ML and data analytics applications on GPUs.
By providing a set of highly optimised, reusable components and a consistent API across different levels of the stack, RAFT enables developers to focus on designing and developing their applications rather than worrying about low-level optimsations.