注意
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 – 阈值