注意
RAFT 中的向量搜索和聚类算法正在迁移到名为 cuVS 的新向量搜索专用库中。在此迁移期间,我们将继续支持 RAFT 中的向量搜索算法,但在 RAPIDS 24.06(六月)版本之后将不再更新它们。我们计划在 RAPIDS 24.10(十月)版本之前完成迁移,并在 24.12(十二月)版本中将其从 RAFT 中彻底移除。
位图#
#include <raft/core/bitmap.cuh>
namespace raft::core
-
template<typename bitmap_t = uint32_t, typename index_t = uint32_t>
struct bitmap_view : public raft::core::bitset_view<uint32_t, uint32_t># - #include <bitmap.hpp>
RAFT 位图的视图。
此轻量级结构表示和操纵具有行主序的二维位图矩阵视图。此类别提供处理矩阵的功能,其中每个元素在位图中表示为一个位。
- 模板参数:
bitmap_t – 位图数组的基础类型。默认为 uint32_t。
index_t – 使用的索引类型。默认为 uint32_t。
公共函数
-
inline _RAFT_HOST_DEVICE bitmap_view(bitmap_t *bitmap_ptr, index_t rows, index_t cols, index_t original_nbits = 0)#
从设备原始指针创建位图视图。
- 参数:
bitmap_ptr – 设备原始指针
rows – 矩阵中的行数。
cols – 矩阵中的列数。
original_nbits – 创建位图时使用的原始位数,用于处理数据类型的潜在不匹配。这对于在使用 ANN 索引时,如果位图最初创建时使用的数据类型与 cuVS ANN 索引当前支持的数据类型不同,会非常有用。
-
inline _RAFT_HOST_DEVICE bitmap_view(raft::device_vector_view<bitmap_t, index_t> bitmap_span, index_t rows, index_t cols, index_t original_nbits = 0)#
从位集合的设备向量视图创建位图视图。
- 参数:
bitmap_span – 位图的设备向量视图
rows – 矩阵中的行数。
cols – 矩阵中的列数。
original_nbits – 创建位图时使用的原始位数,用于处理数据类型的潜在不匹配。这对于在使用 ANN 索引时,如果位图最初创建时使用的数据类型与 cuVS ANN 索引当前支持的数据类型不同,会非常有用。
- inline _RAFT_HOST_DEVICE bool test (const index_t row, const index_t col) const
设备函数,用于测试位图中给定行和列是否已设置。
- 参数:
row – 要测试的位的行索引
col – 要测试的位的列索引
- 返回值:
bool 如果位集合中的索引未被取消设置,则为 True
- inline _RAFT_HOST_DEVICE void set (const index_t row, const index_t col, bool new_value) const
设备函数,用于在位集合中将给定行和列设置为 set_value。
- 参数:
row – 要设置的位的行索引
col – 要设置的位的列索引
new_value – 要将位设置为何值(true 或 false)
- inline _RAFT_HOST_DEVICE index_t get_n_rows () const
获取总行数。
- 返回值:
index_t 总行数
- inline _RAFT_HOST_DEVICE index_t get_n_cols () const
获取总列数。
- 返回值:
index_t 总列数
-
template<typename csr_matrix_t>
void to_csr(const raft::resources &res, csr_matrix_t &csr) const# 转换为压缩稀疏行 (CSR) 格式矩阵。
此方法将二维位图矩阵转换为 CSR 表示,其中位图中的每个 '1' 位对应于 CSR 矩阵中的一个非零项。位图被解释为行主序矩阵,行和列由位图的维度定义。
调用者必须确保:
csr
矩阵已预分配,其维度和非零计数与预期输出匹配。- 模板参数:
csr_matrix_t – 指定 CSR 矩阵类型,限定为 raft::device_csr_matrix。
- 参数:
res – [in] 用于管理 CUDA 流和执行策略的 RAFT 资源。
csr – [out] 输出参数,用于存储结果 CSR 矩阵。位图中的每个 '1' 位对应于 CSR 矩阵中的一个非零元素。