注意

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

矩阵操作#

转置#

#include <raft/linalg/transpose.cuh>

namespace raft::linalg

template<typename T, typename IndexType, typename LayoutPolicy, typename AccessorPolicy>
std::enable_if_t<std::is_floating_point_v<T>, void> transpose(raft::resources const &handle, raft::mdspan<T, raft::matrix_extent<IndexType>, LayoutPolicy, AccessorPolicy> in, raft::mdspan<T, raft::matrix_extent<IndexType>, LayoutPolicy, AccessorPolicy> out)#

转置一个矩阵。输出的布局策略与输入相同。

模板参数:
  • T – 输入矩阵元素的数据类型。

  • IndexType – 矩阵范围的索引类型。

  • LayoutPolicy – 输入矩阵的布局类型。当布局为跨步式时,它可以是更大矩阵的子矩阵。不支持任意跨步。

  • AccessorPolicy – 输入和输出的访问器,必须是设备上的有效访问器。

参数:
  • handle[in] 用于管理昂贵的 CUDA 资源的 raft handle。

  • in[in] 输入矩阵。

  • out[out] 输出矩阵,存储空间由调用者预先分配。