Skip to content

ROCm-DS/hipRaft

Repository files navigation

HIP Reusable Accelerated Functions and Tools for Vector Search and More (hipRAFT)

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/*
  • Spans, buffers, and memory allocation policies and containers.
  • GPU Resource Management – Streams, events, device properties.
  • Logging & Debugging – Logging macros, profiling utilities.
  • Sparse Dense Matrix Abstractions– COO and CSR matrix handling.
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:
  • LinearAssignmentProblem solver(alternating tree Hungarian Algorithm) from cpp/include/raft/solver/linear_assignment.cuh
  • Minimum spanning tree solver is supported from cpp/include/raft/sparse/mst/mst.hpp
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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors