This ROCm™/HIP™ port is derived from the NVIDIA RAPIDS® RAFT project. It aims to follow the latter's directory structure, file naming and API naming as closely as possible to minimize porting friction for users that are interested in using both projects.
hipRAFT is a library of fundamental algorithms and primitives for machine-learning and data-mining workloads that can be run on AMD GPUs. Forked from the raft project, hipRAFT brings the same rich functionality to the HIP™/ROCm™ stack while preserving the familiar API. It offers both a modern C++ interface for systems developers and fully featured Python bindings for rapid prototyping and data-science workflows.
While not exhaustive, the following table summarizes the accelerated functions in hipRAFT:
| Module | Headers | Summary | Known Limitations |
|---|---|---|---|
| Core | cpp/include/raft/core/* |
|
The API's in raft/core/interruptible.hpp are not supported. |
| Label | cpp/include/raft/label/* |
These API's provide functionalities for handling and processing class labels in machine learning and graph-based algorithms. They focus on extracting unique labels, mapping labels to a monotonically increasing order, and merging different label sets. | None |
| Linalg | cpp/include/raft/linalg/* |
API's that abstract common BLAS routines, standard linear system solvers, factorization and eigenvalue solvers. | raft::linalg::randomized_svd is not supported. |
| Matrix | cpp/include/raft/matrix/* |
hipRAFT's matrix API extends matrix operations beyond raft::linalg, offering utilities for arithmetic (power, ratio, reciprocal, sign-flip, square root), manipulation (initialization, reversing, thresholding), ordering (argmax, argmin, select-K, sorting), and reductions (matrix norms). |
None |
| Solver | cpp/include/raft/solver/* |
Solvers supported:
|
None |
| Sparse | cpp/include/raft/sparse/* |
hipRAFT's Sparse module provides GPU-accelerated operations for sparse matrices, including arithmetic, normalization, multiplication, slicing, and solvers for eigenvalues and graph problems, optimizing large-scale computations. | raft::sparse::linalg::masked_matmul is not supported for half type. |
| Util | cpp/include/raft/util/* |
Miscellaneous utility/helper functions | None |
| Common | cpp/include/raft/common/* |
Miscellaneous common functions used across various modules. | None |
| Random | cpp/include/raft/random/* |
Miscellaneous functions for random number generation. | raft::random::make_regression is not supported for the double type. |