Metadata-Version: 2.1
Name: amd-pylibraft
Version: 1.0.0
Summary: hipRAFT: Reusable Algorithms Functions and other Tools
Author: Advanced Micro Devices, Inc., NVIDIA Corporation
License: Apache 2.0 AND MIT
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Project-URL: Homepage, https://github.com/ROCm-DS/hipRaft
Project-URL: Documentation, https://rocm.docs.amd.com/projects/hipRaft/en/latest/
Project-URL: Issue Tracker, https://github.com/ROCm-DS/hipRaft/issues
Requires-Python: >=3.10
Requires-Dist: amd-libraft==1.0.*
Requires-Dist: numpy<3.0a0,>=1.23
Requires-Dist: amd_hipmm==4.*
Requires-Dist: hip-python==7.*
Requires-Dist: hip-python-as-cuda==7.*
Provides-Extra: test
Requires-Dist: amd-cupy==13.5.1; extra == "test"
Requires-Dist: pytest; extra == "test"
Requires-Dist: pytest-cov; extra == "test"
Requires-Dist: scikit-learn; extra == "test"
Requires-Dist: scipy; extra == "test"
Description-Content-Type: text/markdown

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

> This ROCm&trade;/HIP&trade; port is derived from the NVIDIA RAPIDS&reg; 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](https://github.com/rapidsai/raft) project, hipRAFT brings the same rich functionality to the HIP&trade;/ROCm&trade; 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/*`   | <ul><li>Spans, buffers, and memory allocation policies and containers.</li><li>GPU Resource Management – Streams, events, device properties.</li><li>Logging & Debugging – Logging macros, profiling utilities.</li><li>Sparse Dense Matrix Abstractions– COO and CSR matrix handling.</li></ul>                                       | 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: <ul><li>`LinearAssignmentProblem` solver(alternating tree Hungarian Algorithm) from `cpp/include/raft/solver/linear_assignment.cuh`</li><li>`Minimum spanning tree` solver is supported from `cpp/include/raft/sparse/mst/mst.hpp`</li></ul>                                                                   | 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. |
