注意

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 矩阵中的一个非零元素。