注意

RAFT 中的向量搜索和聚类算法正在迁移到一个专门用于向量搜索的新库,名为 cuVS。在本次迁移期间,我们将继续支持 RAFT 中的向量搜索算法,但在 RAPIDS 24.06(6 月)版本发布后将不再更新它们。我们计划在 RAPIDS 24.10(10 月)版本之前完成迁移,并在 24.12(12 月)版本中将它们从 RAFT 中完全移除。

矩阵操作#

初始化#

#include <raft/matrix/init.cuh>

namespace raft::matrix

template<typename math_t, typename extents, typename layout>
void fill(raft::resources const &handle, raft::device_mdspan<const math_t, extents, layout> in, raft::device_mdspan<math_t, extents, layout> out, raft::host_scalar_view<math_t> scalar)#

将矩阵中的值设置为标量

模板参数:
  • math_t – 执行数学运算的数据类型

  • extents – 用于输入的维度和索引类型

  • layout – 矩阵数据的布局(必须是行主序或列主序)

参数:
  • handle[in] raft 句柄

  • in[in] 输入矩阵

  • out[out] 输出矩阵。结果存储在 out 矩阵中

  • scalar[in] 用于填充矩阵元素的标量值

template<typename math_t, typename extents, typename layout>
void fill(raft::resources const &handle, raft::device_mdspan<math_t, extents, layout> inout, math_t scalar)#

将矩阵中的值设置为标量

模板参数:
  • math_t – 执行数学运算的数据类型

  • extents – 用于输入的维度和索引类型

  • layout_t – 矩阵数据的布局(必须是行主序或列主序)

参数:
  • handle[in] raft 句柄

  • inout[inout] 输入矩阵

  • scalar[in] 用于填充矩阵元素的标量值

翻转#

#include <raft/matrix/reverse.cuh>

namespace raft::matrix

template<typename m_t, typename idx_t, typename layout_t>
void col_reverse(raft::resources const &handle, raft::device_matrix_view<m_t, idx_t, layout_t> inout)#

原地翻转矩阵的列(即交换第一列和最后一列)

参数:
  • handle[in] raft 句柄

  • inout[inout] 输入和输出矩阵

template<typename m_t, typename idx_t, typename layout_t>
void row_reverse(raft::resources const &handle, raft::device_matrix_view<m_t, idx_t, layout_t> inout)#

原地翻转矩阵的行(即交换第一行和最后一行)

参数:
  • handle[in] raft 句柄

  • inout[inout] 输入和输出矩阵

阈值#

#include <raft/matrix/threshold.cuh>

namespace raft::matrix

template<typename math_t, typename idx_t, typename layout>
void zero_small_values(raft::resources const &handle, raft::device_matrix_view<const math_t, idx_t, layout> in, raft::device_matrix_view<math_t, idx_t, layout> out, math_t thres = 1e-15)#

根据定义的阈值将小值设置为零

模板参数:
  • math_t – 执行数学运算的数据类型

  • idx_t – 用于索引的整数类型

  • layout – 矩阵数据的布局(必须是行主序或列主序)

参数:
  • handle – raft 句柄

  • in[in] 输入矩阵

  • out[out] 输出矩阵。结果存储在 out 矩阵中

  • thres[in] 用于将值设置为零的阈值

template<typename math_t, typename idx_t, typename layout>
void zero_small_values(raft::resources const &handle, raft::device_matrix_view<math_t, idx_t, layout> inout, math_t thres = 1e-15)#

根据定义的阈值将小值原地设置为零

模板参数:
  • math_t – 执行数学运算的数据类型

  • idx_t – 用于索引的整数类型

  • layout – 矩阵数据的布局(必须是行主序或列主序)

参数:
  • handle – raft 句柄

  • inout – 输入矩阵,结果也存储在此

  • thres – 阈值