选择#
本页面提供了cuvs/selection包中公开元素的C++类参考。
选择-K#
#include
命名空间 cuvs::selection
- group select_k
函数
-
void select_k(raft::resources const &handle, raft::device_matrix_view<const float, int64_t, raft::row_major> in_val, std::optional<raft::device_matrix_view<const int64_t, int64_t, raft::row_major>> in_idx, raft::device_matrix_view<float, int64_t, raft::row_major> out_val, raft::device_matrix_view<int64_t, int64_t, raft::row_major> out_idx, bool select_min, bool sorted = false, SelectAlgo algo = SelectAlgo::kAuto, std::optional<raft::device_vector_view<const int64_t, int64_t>> len_i = std::nullopt)#
从输入数据的每一行中选择k个最小或最大的键/值。
如果你将输入数据
in_val视为一个具有len列和batch_size行的行主序矩阵,那么此函数会在每一行中选择k个最小/最大值,并填充大小为 (batch_size, k) 的行主序矩阵out_val。示例用法
using namespace raft; // get a 2D row-major array of values to search through auto in_values = {... input device_matrix_view<const float, int64_t, row_major> ...} // prepare output arrays auto out_extents = make_extents<int64_t>(in_values.extent(0), k); auto out_values = make_device_mdarray<float>(handle, out_extents); auto out_indices = make_device_mdarray<int64_t>(handle, out_extents); // search `k` smallest values in each row cuvs::selection::select_k( handle, in_values, std::nullopt, out_values.view(), out_indices.view(), true);
- Parameters:
handle – [in] container of reusable resources
in_val – [in] inputs values [batch_size, len]; these are compared and selected.
in_idx – [in] optional input payload [batch_size, len]; typically, these are indices of the corresponding
in_val. Ifin_idxisstd::nullopt, a contiguous array0...len-1is implied.out_val – [out] output values [batch_size, k]; the k smallest/largest values from each row of the
in_val.out_idx – [out] output payload (e.g. indices) [batch_size, k]; the payload selected together with
out_val.select_min – [in] whether to select k smallest (true) or largest (false) keys.
sorted – [in] whether to make sure selected pairs are sorted by value
algo – [in] the selection algorithm to use
len_i – [in] 可选的大小为 (batch_size) 的数组,提供每行的长度
-
void select_k(raft::resources const &handle, raft::device_matrix_view<const float, int64_t, raft::row_major> in_val, std::optional<raft::device_matrix_view<const int, int64_t, raft::row_major>> in_idx, raft::device_matrix_view<float, int64_t, raft::row_major> out_val, raft::device_matrix_view<int, int64_t, raft::row_major> out_idx, bool select_min, bool sorted = false, SelectAlgo algo = SelectAlgo::kAuto, std::optional<raft::device_vector_view<const int, int64_t>> len_i = std::nullopt)#
-
void select_k(raft::resources const &handle, raft::device_matrix_view<const float, int64_t, raft::row_major> in_val, std::optional<raft::device_matrix_view<const uint32_t, int64_t, raft::row_major>> in_idx, raft::device_matrix_view<float, int64_t, raft::row_major> out_val, raft::device_matrix_view<uint32_t, int64_t, raft::row_major> out_idx, bool select_min, bool sorted = false, SelectAlgo algo = SelectAlgo::kAuto, std::optional<raft::device_vector_view<const uint32_t, int64_t>> len_i = std::nullopt)#
从输入数据的每一行中选择k个最小或最大的键/值。
如果你将输入数据
in_val视为一个具有len列和batch_size行的行主序矩阵,那么此函数会在每一行中选择k个最小/最大值,并填充大小为 (batch_size, k) 的行主序矩阵out_val。示例用法
using namespace raft; // get a 2D row-major array of values to search through auto in_values = {... input device_matrix_view<const float, int64_t, row_major> ...} // prepare output arrays auto out_extents = make_extents<int64_t>(in_values.extent(0), k); auto out_values = make_device_mdarray<float>(handle, out_extents); auto out_indices = make_device_mdarray<uint32_t>(handle, out_extents); // search `k` smallest values in each row cuvs::selection::select_k( handle, in_values, std::nullopt, out_values.view(), out_indices.view(), true);
- Parameters:
handle – [in] 可重用资源的容器
in_val – [in] 输入值 [batch_size, len];这些值被比较和选择。
in_idx – [in] 可选的输入载荷 [batch_size, len];通常,这些是相应的
in_val的索引。如果in_idx是std::nullopt,则隐含一个连续的数组0...len-1。out_val – [out] 输出值 [batch_size, k]; 来自
in_val每一行的 k 个最小/最大值。out_idx – [out] 输出有效载荷(例如索引)[batch_size, k];与
out_val一起选择的有效载荷。select_min – [in] 是否选择最小的k个键(true)或最大的k个键(false)。
sorted – [in] 是否确保选定的对按值排序
algo – [in] 使用的选择算法
len_i – [in] 可选的大小为 (batch_size) 的数组,提供每行的长度
-
void select_k(raft::resources const &handle, raft::device_matrix_view<const half, int64_t, raft::row_major> in_val, std::optional<raft::device_matrix_view<const uint32_t, int64_t, raft::row_major>> in_idx, raft::device_matrix_view<half, int64_t, raft::row_major> out_val, raft::device_matrix_view<uint32_t, int64_t, raft::row_major> out_idx, bool select_min, bool sorted = false, SelectAlgo algo = SelectAlgo::kAuto, std::optional<raft::device_vector_view<const uint32_t, int64_t>> len_i = std::nullopt)#
从输入数据的每一行中选择k个最小或最大的键/值。
如果你将输入数据
in_val视为一个具有len列和batch_size行的行主序矩阵,那么此函数会在每一行中选择k个最小/最大值,并填充大小为 (batch_size, k) 的行主序矩阵out_val。示例用法
using namespace raft; // get a 2D row-major array of values to search through auto in_values = {... input device_matrix_view<const half, int64_t, row_major> ...} // prepare output arrays auto out_extents = make_extents<int64_t>(in_values.extent(0), k); auto out_values = make_device_mdarray<half>(handle, out_extents); auto out_indices = make_device_mdarray<uint32_t>(handle, out_extents); // search `k` smallest values in each row cuvs::selection::select_k( handle, in_values, std::nullopt, out_values.view(), out_indices.view(), true);
- Parameters:
handle – [in] 可重用资源的容器
in_val – [in] 输入值 [batch_size, len];这些值被比较和选择。
in_idx – [in] 可选的输入载荷 [batch_size, len];通常,这些是相应的
in_val的索引。如果in_idx是std::nullopt,则隐含一个连续的数组0...len-1。out_val – [out] 输出值 [batch_size, k]; 来自
in_val每一行的 k 个最小/最大值。out_idx – [out] 输出负载(例如索引)[batch_size, k];与
out_val一起选择的负载。select_min – [in] 是否选择最小的k个键(true)或最大的k个键(false)。
sorted – [in] 是否确保选定的对按值排序
algo – [in] 使用的选择算法
len_i – [in] 可选的大小为 (batch_size) 的数组,提供每行的长度
-
void select_k(raft::resources const &handle, raft::device_matrix_view<const float, int64_t, raft::row_major> in_val, std::optional<raft::device_matrix_view<const int64_t, int64_t, raft::row_major>> in_idx, raft::device_matrix_view<float, int64_t, raft::row_major> out_val, raft::device_matrix_view<int64_t, int64_t, raft::row_major> out_idx, bool select_min, bool sorted = false, SelectAlgo algo = SelectAlgo::kAuto, std::optional<raft::device_vector_view<const int64_t, int64_t>> len_i = std::nullopt)#