底层 cuGraph C++ API#

namespace cugraph#

类型别名

template<typename GraphViewType, typename EdgeValueType>
using edge_property_view_type_t = typename edge_property_view_type<GraphViewType, EdgeValueType>::value#
template<typename T>
using dataframe_buffer_type_t = typename dataframe_buffer_type<T>::type#
template<typename T>
using dataframe_buffer_iterator_type_t = typename dataframe_buffer_iterator_type<T>::type#
template<typename T>
using dataframe_buffer_const_iterator_type_t = typename dataframe_buffer_const_iterator_type<T>::type#

枚举

enum class cugraph_cc_t#

enumerator CUGRAPH_STRONG#
enumerator NUM_CONNECTIVITY_TYPES#

强连通分量

enum class k_core_degree_type_t#

确定核心数计算是基于入边、出边还是两者。

.*

enumerator IN#
enumerator OUT#
enumerator INOUT#
enum class sampling_strategy_t : int#

enumerator UNIFORM#
enumerator BIASED#
enumerator NODE2VEC#
enum class generator_distribution_t#

enumerator POWER_LAW#
enumerator UNIFORM#

函数

template rmm::device_uvector< float > betweenness_centrality (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, std::optional< raft::device_span< int32_t const > > vertices, bool const normalized, bool const include_endpoints, bool do_expensive_check)
template rmm::device_uvector< double > betweenness_centrality (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, std::optional< raft::device_span< int32_t const > > vertices, bool const normalized, bool const include_endpoints, bool do_expensive_check)
template edge_property_t< graph_view_t< int32_t, int32_t, false, true >, float > edge_betweenness_centrality (const raft::handle_t &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, std::optional< raft::device_span< int32_t const > > vertices, bool const normalized, bool const do_expensive_check)
template edge_property_t< graph_view_t< int32_t, int32_t, false, true >, double > edge_betweenness_centrality (const raft::handle_t &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, std::optional< raft::device_span< int32_t const > > vertices, bool const normalized, bool const do_expensive_check)
template rmm::device_uvector< float > betweenness_centrality (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, std::optional< raft::device_span< int64_t const > > vertices, bool const normalized, bool const include_endpoints, bool do_expensive_check)
template rmm::device_uvector< double > betweenness_centrality (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, std::optional< raft::device_span< int64_t const > > vertices, bool const normalized, bool const include_endpoints, bool do_expensive_check)
template edge_property_t< graph_view_t< int64_t, int64_t, false, true >, float > edge_betweenness_centrality (const raft::handle_t &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, std::optional< raft::device_span< int64_t const > > vertices, bool const normalized, bool const do_expensive_check)
template edge_property_t< graph_view_t< int64_t, int64_t, false, true >, double > edge_betweenness_centrality (const raft::handle_t &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, std::optional< raft::device_span< int64_t const > > vertices, bool const normalized, bool const do_expensive_check)
template rmm::device_uvector< float > betweenness_centrality (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, std::optional< raft::device_span< int32_t const > > vertices, bool const normalized, bool const include_endpoints, bool do_expensive_check)
template rmm::device_uvector< double > betweenness_centrality (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, std::optional< raft::device_span< int32_t const > > vertices, bool const normalized, bool const include_endpoints, bool do_expensive_check)
template edge_property_t< graph_view_t< int32_t, int32_t, false, false >, float > edge_betweenness_centrality (const raft::handle_t &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, std::optional< raft::device_span< int32_t const > > vertices, bool const normalized, bool const do_expensive_check)
template edge_property_t< graph_view_t< int32_t, int32_t, false, false >, double > edge_betweenness_centrality (const raft::handle_t &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, std::optional< raft::device_span< int32_t const > > vertices, bool const normalized, bool const do_expensive_check)
template rmm::device_uvector< float > betweenness_centrality (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, std::optional< raft::device_span< int64_t const > > vertices, bool const normalized, bool const include_endpoints, bool do_expensive_check)
template rmm::device_uvector< double > betweenness_centrality (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, std::optional< raft::device_span< int64_t const > > vertices, bool const normalized, bool const include_endpoints, bool do_expensive_check)
template edge_property_t< graph_view_t< int64_t, int64_t, false, false >, float > edge_betweenness_centrality (const raft::handle_t &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, std::optional< raft::device_span< int64_t const > > vertices, bool const normalized, bool const do_expensive_check)
template edge_property_t< graph_view_t< int64_t, int64_t, false, false >, double > edge_betweenness_centrality (const raft::handle_t &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, std::optional< raft::device_span< int64_t const > > vertices, bool const normalized, bool const do_expensive_check)
template rmm::device_uvector< float > eigenvector_centrality (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, true > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, std::optional< raft::device_span< float const > > initial_centralities, float epsilon, size_t max_iterations, bool do_expensive_check)
template rmm::device_uvector< double > eigenvector_centrality (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, true > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, std::optional< raft::device_span< double const > > initial_centralities, double epsilon, size_t max_iterations, bool do_expensive_check)
template rmm::device_uvector< float > eigenvector_centrality (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, true > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, std::optional< raft::device_span< float const > > initial_centralities, float epsilon, size_t max_iterations, bool do_expensive_check)
template rmm::device_uvector< double > eigenvector_centrality (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, true > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, std::optional< raft::device_span< double const > > initial_centralities, double epsilon, size_t max_iterations, bool do_expensive_check)
template rmm::device_uvector< float > eigenvector_centrality (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, false > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, std::optional< raft::device_span< float const > > initial_centralities, float epsilon, size_t max_iterations, bool do_expensive_check)
template rmm::device_uvector< double > eigenvector_centrality (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, false > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, std::optional< raft::device_span< double const > > initial_centralities, double epsilon, size_t max_iterations, bool do_expensive_check)
template rmm::device_uvector< float > eigenvector_centrality (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, false > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, std::optional< raft::device_span< float const > > initial_centralities, float epsilon, size_t max_iterations, bool do_expensive_check)
template rmm::device_uvector< double > eigenvector_centrality (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, false > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, std::optional< raft::device_span< double const > > initial_centralities, double epsilon, size_t max_iterations, bool do_expensive_check)
template void katz_centrality (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, true > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, float const *betas, float *katz_centralities, float alpha, float beta, float epsilon, size_t max_iterations, bool has_initial_guess, bool normalize, bool do_expensive_check)
template void katz_centrality (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, true > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, double const *betas, double *katz_centralities, double alpha, double beta, double epsilon, size_t max_iterations, bool has_initial_guess, bool normalize, bool do_expensive_check)
template void katz_centrality (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, true > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, float const *betas, float *katz_centralities, float alpha, float beta, float epsilon, size_t max_iterations, bool has_initial_guess, bool normalize, bool do_expensive_check)
template void katz_centrality (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, true > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, double const *betas, double *katz_centralities, double alpha, double beta, double epsilon, size_t max_iterations, bool has_initial_guess, bool normalize, bool do_expensive_check)
template void katz_centrality (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, false > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, float const *betas, float *katz_centralities, float alpha, float beta, float epsilon, size_t max_iterations, bool has_initial_guess, bool normalize, bool do_expensive_check)
template void katz_centrality (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, false > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, double const *betas, double *katz_centralities, double alpha, double beta, double epsilon, size_t max_iterations, bool has_initial_guess, bool normalize, bool do_expensive_check)
template void katz_centrality (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, false > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, float const *betas, float *katz_centralities, float alpha, float beta, float epsilon, size_t max_iterations, bool has_initial_guess, bool normalize, bool do_expensive_check)
template void katz_centrality (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, false > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, double const *betas, double *katz_centralities, double alpha, double beta, double epsilon, size_t max_iterations, bool has_initial_guess, bool normalize, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, float > approximate_weighted_matching (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, edge_property_view_t< int32_t, float const * > edge_weight_view)
template std::tuple< rmm::device_uvector< int32_t >, double > approximate_weighted_matching (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, edge_property_view_t< int32_t, double const * > edge_weight_view)
template std::tuple< rmm::device_uvector< int64_t >, float > approximate_weighted_matching (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, edge_property_view_t< int64_t, float const * > edge_weight_view)
template std::tuple< rmm::device_uvector< int64_t >, double > approximate_weighted_matching (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, edge_property_view_t< int64_t, double const * > edge_weight_view)
template std::tuple< rmm::device_uvector< int32_t >, float > approximate_weighted_matching (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, edge_property_view_t< int32_t, float const * > edge_weight_view)
template std::tuple< rmm::device_uvector< int32_t >, double > approximate_weighted_matching (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, edge_property_view_t< int32_t, double const * > edge_weight_view)
template std::tuple< rmm::device_uvector< int64_t >, float > approximate_weighted_matching (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, edge_property_view_t< int64_t, float const * > edge_weight_view)
template std::tuple< rmm::device_uvector< int64_t >, double > approximate_weighted_matching (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, edge_property_view_t< int64_t, double const * > edge_weight_view)
template std::tuple< rmm::device_uvector< int32_t >, size_t, float > ecg (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, float min_weight, size_t ensemble_size, size_t max_level, float threshold, float resolution)
template std::tuple< rmm::device_uvector< int32_t >, size_t, double > ecg (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, double min_weight, size_t ensemble_size, size_t max_level, double threshold, double resolution)
template std::tuple< rmm::device_uvector< int64_t >, size_t, float > ecg (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, float min_weight, size_t ensemble_size, size_t max_level, float threshold, float resolution)
template std::tuple< rmm::device_uvector< int64_t >, size_t, double > ecg (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, double min_weight, size_t ensemble_size, size_t max_level, double threshold, double resolution)
template std::tuple< rmm::device_uvector< int32_t >, size_t, float > ecg (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, float min_weight, size_t ensemble_size, size_t max_level, float threshold, float resolution)
template std::tuple< rmm::device_uvector< int32_t >, size_t, double > ecg (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, double min_weight, size_t ensemble_size, size_t max_level, double threshold, double resolution)
template std::tuple< rmm::device_uvector< int64_t >, size_t, float > ecg (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, float min_weight, size_t ensemble_size, size_t max_level, float threshold, float resolution)
template std::tuple< rmm::device_uvector< int64_t >, size_t, double > ecg (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, double min_weight, size_t ensemble_size, size_t max_level, double threshold, double resolution)
template edge_property_t< graph_view_t< int32_t, int32_t, false, true >, int32_t > edge_triangle_count (raft::handle_t const &handle, cugraph::graph_view_t< int32_t, int32_t, false, true > const &graph_view, bool do_expensive_check)
template edge_property_t< graph_view_t< int64_t, int64_t, false, true >, int64_t > edge_triangle_count (raft::handle_t const &handle, cugraph::graph_view_t< int64_t, int64_t, false, true > const &graph_view, bool do_expensive_check)
template edge_property_t< graph_view_t< int32_t, int32_t, false, false >, int32_t > edge_triangle_count (raft::handle_t const &handle, cugraph::graph_view_t< int32_t, int32_t, false, false > const &graph_view, bool do_expensive_check)
template edge_property_t< graph_view_t< int64_t, int64_t, false, false >, int64_t > edge_triangle_count (raft::handle_t const &handle, cugraph::graph_view_t< int64_t, int64_t, false, false > const &graph_view, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > >, rmm::device_uvector< size_t > > extract_ego (raft::handle_t const &, graph_view_t< int32_t, int32_t, false, true > const &, std::optional< edge_property_view_t< int32_t, float const * > >, int32_t *, int32_t, int32_t)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > >, rmm::device_uvector< size_t > > extract_ego (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > >, raft::device_span< int32_t const > source_vertex, int32_t radius, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > >, rmm::device_uvector< size_t > > extract_ego (raft::handle_t const &, graph_view_t< int32_t, int32_t, false, true > const &, std::optional< edge_property_view_t< int32_t, double const * > >, int32_t *, int32_t, int32_t)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > >, rmm::device_uvector< size_t > > extract_ego (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > >, raft::device_span< int32_t const > source_vertex, int32_t radius, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > >, rmm::device_uvector< size_t > > extract_ego (raft::handle_t const &, graph_view_t< int64_t, int64_t, false, true > const &, std::optional< edge_property_view_t< int64_t, float const * > >, int64_t *, int64_t, int64_t)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > >, rmm::device_uvector< size_t > > extract_ego (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > >, raft::device_span< int64_t const > source_vertex, int64_t radius, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > >, rmm::device_uvector< size_t > > extract_ego (raft::handle_t const &, graph_view_t< int64_t, int64_t, false, true > const &, std::optional< edge_property_view_t< int64_t, double const * > >, int64_t *, int64_t, int64_t)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > >, rmm::device_uvector< size_t > > extract_ego (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > >, raft::device_span< int64_t const > source_vertex, int64_t radius, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > >, rmm::device_uvector< size_t > > extract_ego (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > >, int32_t *source_vertex, int32_t n_subgraphs, int32_t radius)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > >, rmm::device_uvector< size_t > > extract_ego (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > >, raft::device_span< int32_t const > source_vertex, int32_t radius, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > >, rmm::device_uvector< size_t > > extract_ego (raft::handle_t const &, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > >, int32_t *source_vertex, int32_t n_subgraphs, int32_t radius)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > >, rmm::device_uvector< size_t > > extract_ego (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > >, raft::device_span< int32_t const > source_vertex, int32_t radius, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > >, rmm::device_uvector< size_t > > extract_ego (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > >, int64_t *source_vertex, int64_t n_subgraphs, int64_t radius)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > >, rmm::device_uvector< size_t > > extract_ego (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > >, raft::device_span< int64_t const > source_vertex, int64_t radius, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > >, rmm::device_uvector< size_t > > extract_ego (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > >, int64_t *source_vertex, int64_t n_subgraphs, int64_t radius)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > >, rmm::device_uvector< size_t > > extract_ego (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > >, raft::device_span< int64_t const > source_vertex, int64_t radius, bool do_expensive_check)
template<typename vertex_t, bool multi_gpu>
void partition_at_level(raft::handle_t const &handle, Dendrogram<vertex_t> const &dendrogram, vertex_t const *d_vertex_ids, vertex_t *d_partition, size_t level)#
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > > > k_truss (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, int32_t k, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > > > k_truss (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > >, int32_t k, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > > > k_truss (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > >, int64_t k, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > > > k_truss (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > >, int64_t k, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > > > k_truss (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > >, int32_t k, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > > > k_truss (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > >, int32_t k, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > > > k_truss (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > >, int64_t k, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > > > k_truss (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > >, int64_t k, bool do_expensive_check)
template<typename vertex_t, typename edge_t, bool multi_gpu>
void flatten_leiden_dendrogram(raft::handle_t const &handle, graph_view_t<vertex_t, edge_t, false, multi_gpu> const &graph_view, Dendrogram<vertex_t> const &dendrogram, vertex_t *clustering)#
template std::pair< std::unique_ptr< Dendrogram< int32_t > >, float > leiden (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, size_t max_level, float resolution, float theta)
template std::pair< std::unique_ptr< Dendrogram< int32_t > >, double > leiden (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > >, size_t max_level, double resolution, double theta)
template std::pair< size_t, float > leiden (raft::handle_t const &, raft::random::RngState &, graph_view_t< int32_t, int32_t, false, true > const &, std::optional< edge_property_view_t< int32_t, float const * > >, int32_t *, size_t, float, float)
template std::pair< size_t, double > leiden (raft::handle_t const &, raft::random::RngState &, graph_view_t< int32_t, int32_t, false, true > const &, std::optional< edge_property_view_t< int32_t, double const * > >, int32_t *, size_t, double, double)
template std::pair< std::unique_ptr< Dendrogram< int64_t > >, float > leiden (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > >, size_t max_level, float resolution, float theta)
template std::pair< std::unique_ptr< Dendrogram< int64_t > >, double > leiden (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > >, size_t max_level, double resolution, double theta)
template std::pair< size_t, float > leiden (raft::handle_t const &, raft::random::RngState &, graph_view_t< int64_t, int64_t, false, true > const &, std::optional< edge_property_view_t< int64_t, float const * > >, int64_t *, size_t, float, float)
template std::pair< size_t, double > leiden (raft::handle_t const &, raft::random::RngState &, graph_view_t< int64_t, int64_t, false, true > const &, std::optional< edge_property_view_t< int64_t, double const * > >, int64_t *, size_t, double, double)
template std::pair< std::unique_ptr< Dendrogram< int32_t > >, float > leiden (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > >, size_t max_level, float resolution, float theta)
template std::pair< std::unique_ptr< Dendrogram< int32_t > >, double > leiden (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > >, size_t max_level, double resolution, double theta)
template std::pair< size_t, float > leiden (raft::handle_t const &, raft::random::RngState &, graph_view_t< int32_t, int32_t, false, false > const &, std::optional< edge_property_view_t< int32_t, float const * > >, int32_t *, size_t, float, float)
template std::pair< size_t, double > leiden (raft::handle_t const &, raft::random::RngState &, graph_view_t< int32_t, int32_t, false, false > const &, std::optional< edge_property_view_t< int32_t, double const * > >, int32_t *, size_t, double, double)
template std::pair< std::unique_ptr< Dendrogram< int64_t > >, float > leiden (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > >, size_t max_level, float resolution, float theta)
template std::pair< std::unique_ptr< Dendrogram< int64_t > >, double > leiden (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > >, size_t max_level, double resolution, double theta)
template std::pair< size_t, float > leiden (raft::handle_t const &, raft::random::RngState &, graph_view_t< int64_t, int64_t, false, false > const &, std::optional< edge_property_view_t< int64_t, float const * > >, int64_t *, size_t, float, float)
template std::pair< size_t, double > leiden (raft::handle_t const &, raft::random::RngState &, graph_view_t< int64_t, int64_t, false, false > const &, std::optional< edge_property_view_t< int64_t, double const * > >, int64_t *, size_t, double, double)
template<typename vertex_t, typename edge_t, bool multi_gpu>
void flatten_dendrogram(raft::handle_t const &handle, graph_view_t<vertex_t, edge_t, false, multi_gpu> const &graph_view, Dendrogram<vertex_t> const &dendrogram, vertex_t *clustering)#
template std::pair< std::unique_ptr< Dendrogram< int32_t > >, float > louvain (raft::handle_t const &, std::optional< std::reference_wrapper< raft::random::RngState > >, graph_view_t< int32_t, int32_t, false, true > const &, std::optional< edge_property_view_t< int32_t, float const * > >, size_t, float, float)
template std::pair< std::unique_ptr< Dendrogram< int32_t > >, double > louvain (raft::handle_t const &, std::optional< std::reference_wrapper< raft::random::RngState > >, graph_view_t< int32_t, int32_t, false, true > const &, std::optional< edge_property_view_t< int32_t, double const * > >, size_t, double, double)
template std::pair< size_t, float > louvain (raft::handle_t const &, std::optional< std::reference_wrapper< raft::random::RngState > >, graph_view_t< int32_t, int32_t, false, true > const &, std::optional< edge_property_view_t< int32_t, float const * > >, int32_t *, size_t, float, float)
template std::pair< size_t, double > louvain (raft::handle_t const &, std::optional< std::reference_wrapper< raft::random::RngState > >, graph_view_t< int32_t, int32_t, false, true > const &, std::optional< edge_property_view_t< int32_t, double const * > >, int32_t *, size_t, double, double)
template std::pair< std::unique_ptr< Dendrogram< int64_t > >, float > louvain (raft::handle_t const &, std::optional< std::reference_wrapper< raft::random::RngState > >, graph_view_t< int64_t, int64_t, false, true > const &, std::optional< edge_property_view_t< int64_t, float const * > >, size_t, float, float)
template std::pair< std::unique_ptr< Dendrogram< int64_t > >, double > louvain (raft::handle_t const &, std::optional< std::reference_wrapper< raft::random::RngState > >, graph_view_t< int64_t, int64_t, false, true > const &, std::optional< edge_property_view_t< int64_t, double const * > >, size_t, double, double)
template std::pair< size_t, float > louvain (raft::handle_t const &, std::optional< std::reference_wrapper< raft::random::RngState > >, graph_view_t< int64_t, int64_t, false, true > const &, std::optional< edge_property_view_t< int64_t, float const * > >, int64_t *, size_t, float, float)
template std::pair< size_t, double > louvain (raft::handle_t const &, std::optional< std::reference_wrapper< raft::random::RngState > >, graph_view_t< int64_t, int64_t, false, true > const &, std::optional< edge_property_view_t< int64_t, double const * > >, int64_t *, size_t, double, double)
template std::pair< std::unique_ptr< Dendrogram< int32_t > >, float > louvain (raft::handle_t const &, std::optional< std::reference_wrapper< raft::random::RngState > >, graph_view_t< int32_t, int32_t, false, false > const &, std::optional< edge_property_view_t< int32_t, float const * > >, size_t, float, float)
template std::pair< std::unique_ptr< Dendrogram< int32_t > >, double > louvain (raft::handle_t const &, std::optional< std::reference_wrapper< raft::random::RngState > >, graph_view_t< int32_t, int32_t, false, false > const &, std::optional< edge_property_view_t< int32_t, double const * > >, size_t, double, double)
template std::pair< size_t, float > louvain (raft::handle_t const &, std::optional< std::reference_wrapper< raft::random::RngState > >, graph_view_t< int32_t, int32_t, false, false > const &, std::optional< edge_property_view_t< int32_t, float const * > >, int32_t *, size_t, float, float)
template std::pair< size_t, double > louvain (raft::handle_t const &, std::optional< std::reference_wrapper< raft::random::RngState > >, graph_view_t< int32_t, int32_t, false, false > const &, std::optional< edge_property_view_t< int32_t, double const * > >, int32_t *, size_t, double, double)
template std::pair< std::unique_ptr< Dendrogram< int64_t > >, float > louvain (raft::handle_t const &, std::optional< std::reference_wrapper< raft::random::RngState > >, graph_view_t< int64_t, int64_t, false, false > const &, std::optional< edge_property_view_t< int64_t, float const * > >, size_t, float, float)
template std::pair< std::unique_ptr< Dendrogram< int64_t > >, double > louvain (raft::handle_t const &, std::optional< std::reference_wrapper< raft::random::RngState > >, graph_view_t< int64_t, int64_t, false, false > const &, std::optional< edge_property_view_t< int64_t, double const * > >, size_t, double, double)
template std::pair< size_t, float > louvain (raft::handle_t const &, std::optional< std::reference_wrapper< raft::random::RngState > >, graph_view_t< int64_t, int64_t, false, false > const &, std::optional< edge_property_view_t< int64_t, float const * > >, int64_t *, size_t, float, float)
template std::pair< size_t, double > louvain (raft::handle_t const &, std::optional< std::reference_wrapper< raft::random::RngState > >, graph_view_t< int64_t, int64_t, false, false > const &, std::optional< edge_property_view_t< int64_t, double const * > >, int64_t *, size_t, double, double)
template void triangle_count (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< raft::device_span< int32_t const > > vertices, raft::device_span< int32_t > counts, bool do_expensive_check)
template void triangle_count (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< raft::device_span< int64_t const > > vertices, raft::device_span< int64_t > counts, bool do_expensive_check)
template void triangle_count (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< raft::device_span< int32_t const > > vertices, raft::device_span< int32_t > counts, bool do_expensive_check)
template void triangle_count (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< raft::device_span< int64_t const > > vertices, raft::device_span< int64_t > counts, bool do_expensive_check)
template void connected_components< int32_t, int32_t, float > (legacy::GraphCSRView< int32_t, int32_t, float > const &, cugraph_cc_t, int32_t *)
template void connected_components< int64_t, int64_t, float > (legacy::GraphCSRView< int64_t, int64_t, float > const &, cugraph_cc_t, int64_t *)
template rmm::device_uvector< int32_t > maximal_independent_set (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, raft::random::RngState &rng_state)
template rmm::device_uvector< int64_t > maximal_independent_set (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, raft::random::RngState &rng_state)
template rmm::device_uvector< int32_t > maximal_independent_set (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, raft::random::RngState &rng_state)
template rmm::device_uvector< int64_t > maximal_independent_set (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, raft::random::RngState &rng_state)
template rmm::device_uvector< int32_t > vertex_coloring (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, raft::random::RngState &rng_state)
template rmm::device_uvector< int64_t > vertex_coloring (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, raft::random::RngState &rng_state)
template rmm::device_uvector< int32_t > vertex_coloring (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, raft::random::RngState &rng_state)
template rmm::device_uvector< int64_t > vertex_coloring (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, raft::random::RngState &rng_state)
template void weakly_connected_components (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, int32_t *components, bool do_expensive_check)
template void weakly_connected_components (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, int64_t *components, bool do_expensive_check)
template void weakly_connected_components (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, int32_t *components, bool do_expensive_check)
template void weakly_connected_components (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, int64_t *components, bool do_expensive_check)
template std::unique_ptr< legacy::GraphCSR< uint32_t, uint32_t, float > > coo_to_csr< uint32_t, uint32_t, float > (legacy::GraphCOOView< uint32_t, uint32_t, float > const &graph, rmm::device_async_resource_ref)
template std::unique_ptr< legacy::GraphCSR< uint32_t, uint32_t, double > > coo_to_csr< uint32_t, uint32_t, double > (legacy::GraphCOOView< uint32_t, uint32_t, double > const &graph, rmm::device_async_resource_ref)
template std::unique_ptr< legacy::GraphCSR< int32_t, int32_t, float > > coo_to_csr< int32_t, int32_t, float > (legacy::GraphCOOView< int32_t, int32_t, float > const &graph, rmm::device_async_resource_ref)
template std::unique_ptr< legacy::GraphCSR< int32_t, int32_t, double > > coo_to_csr< int32_t, int32_t, double > (legacy::GraphCOOView< int32_t, int32_t, double > const &graph, rmm::device_async_resource_ref)
template std::unique_ptr< legacy::GraphCSR< int64_t, int64_t, float > > coo_to_csr< int64_t, int64_t, float > (legacy::GraphCOOView< int64_t, int64_t, float > const &graph, rmm::device_async_resource_ref)
template std::unique_ptr< legacy::GraphCSR< int64_t, int64_t, double > > coo_to_csr< int64_t, int64_t, double > (legacy::GraphCOOView< int64_t, int64_t, double > const &graph, rmm::device_async_resource_ref)
template void coo_to_csr_inplace< uint32_t, uint32_t, float > (legacy::GraphCOOView< uint32_t, uint32_t, float > &graph, legacy::GraphCSRView< uint32_t, uint32_t, float > &result)
template void coo_to_csr_inplace< uint32_t, uint32_t, double > (legacy::GraphCOOView< uint32_t, uint32_t, double > &graph, legacy::GraphCSRView< uint32_t, uint32_t, double > &result)
template void coo_to_csr_inplace< int32_t, int32_t, float > (legacy::GraphCOOView< int32_t, int32_t, float > &graph, legacy::GraphCSRView< int32_t, int32_t, float > &result)
template void coo_to_csr_inplace< int32_t, int32_t, double > (legacy::GraphCOOView< int32_t, int32_t, double > &graph, legacy::GraphCSRView< int32_t, int32_t, double > &result)
template void coo_to_csr_inplace< int64_t, int64_t, float > (legacy::GraphCOOView< int64_t, int64_t, float > &graph, legacy::GraphCSRView< int64_t, int64_t, float > &result)
template void coo_to_csr_inplace< int64_t, int64_t, double > (legacy::GraphCOOView< int64_t, int64_t, double > &graph, legacy::GraphCSRView< int64_t, int64_t, double > &result)
template<typename VT, typename ET, typename WT>
void coo_to_csr_inplace(legacy::GraphCOOView<VT, ET, WT> &graph, legacy::GraphCSRView<VT, ET, WT> &result)#
template<typename vertex_t, typename edge_t, bool multi_gpu>
void core_number(raft::handle_t const &handle, graph_view_t<vertex_t, edge_t, false, multi_gpu> const &graph_view, edge_t *core_numbers, k_core_degree_type_t degree_type, size_t k_first = 0, size_t k_last = std::numeric_limits<size_t>::max(), bool do_expensive_check = false)#

计算 K-Core 分解中各个顶点的核心数。

.*

输入图不应包含自环或多边。目前,仅支持无向图。

模板参数
  • vertex_t – 顶点标识符的类型。需要是整数类型。

  • edge_t – 边标识符的类型。需要是整数类型。

  • multi_gpu – 指示模板实例化是针对单 GPU (false) 还是多 GPU (true) 的标志。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 图视图对象。

  • core_numbers – 指向输出核心数数组的指针。

  • degree_type – 指定是根据入度、出度还是入度 + 出度计算 K-Core 分解。

  • k_first – 从 K = k_first 开始查找 K-Core。不属于 k_first-core 的任何顶点的核心数将为 0。

  • k_last – 查找直到 K = k_last 的 K-Core。属于 (k_last)-core 的任何顶点,其核心数将设置为它们在 k_last-core 中的度数。

  • do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)。

template void core_number (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, int32_t *core_numbers, k_core_degree_type_t degree_type, size_t k_first, size_t k_last, bool do_expensive_check)
template void core_number (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, int64_t *core_numbers, k_core_degree_type_t degree_type, size_t k_first, size_t k_last, bool do_expensive_check)
template void core_number (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, int32_t *core_numbers, k_core_degree_type_t degree_type, size_t k_first, size_t k_last, bool do_expensive_check)
template void core_number (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, int64_t *core_numbers, k_core_degree_type_t degree_type, size_t k_first, size_t k_last, bool do_expensive_check)
template<typename vertex_t, typename edge_t, typename weight_t, bool multi_gpu>
std::tuple<rmm::device_uvector<vertex_t>, rmm::device_uvector<vertex_t>, std::optional<rmm::device_uvector<weight_t>>> k_core(raft::handle_t const &handle, graph_view_t<vertex_t, edge_t, false, multi_gpu> const &graph_view, std::optional<edge_property_view_t<edge_t, weight_t const*>> edge_weight_view, size_t k, std::optional<k_core_degree_type_t> degree_type, std::optional<raft::device_span<edge_t const>> core_numbers, bool do_expensive_check = false)#

提取图的 K-Core。

.*

抛出

cugraph::logic_error – 发生错误时。

模板参数
  • vertex_t – 顶点标识符的类型。需要是整数类型。

  • edge_t – 边标识符的类型。需要是整数类型。

  • weight_t – 边权重的类型。需要是浮点类型。

  • multi_gpu – 指示模板实例化是针对单 GPU (false) 还是多 GPU (true) 的标志。

参数
  • graph_view – 图视图对象。

  • edge_weight_view – 可选的视图对象,用于保存 graph_view 的边权重。

  • k – 核心的阶数。该值不得为负。

  • degree_type – 可选参数,用于指定是根据入度、出度还是入度 + 出度计算 K-Core 分解。必须指定 degree_typecore_numbers 中的一个。

  • core_numbers – core_number 算法的可选输出。如果未指定,则 k_core 将使用 degree_type 自己调用 core_number。

  • do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)。

返回

图的边列表。

template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > > > k_core (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, size_t k, std::optional< k_core_degree_type_t > degree_type, std::optional< raft::device_span< int32_t const > > core_numbers, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > > > k_core (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > >, edge_weight_view, size_t k, std::optional< k_core_degree_type_t > degree_type, std::optional< raft::device_span< int32_t const > > core_numbers, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > > > k_core (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, size_t k, std::optional< k_core_degree_type_t > degree_type, std::optional< raft::device_span< int64_t const > > core_numbers, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > > > k_core (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > >, edge_weight_view, size_t k, std::optional< k_core_degree_type_t > degree_type, std::optional< raft::device_span< int64_t const > > core_numbers, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > > > k_core (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, size_t k, std::optional< k_core_degree_type_t > degree_type, std::optional< raft::device_span< int32_t const > > core_numbers, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > > > k_core (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, size_t k, std::optional< k_core_degree_type_t > degree_type, std::optional< raft::device_span< int32_t const > > core_numbers, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > > > k_core (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, size_t k, std::optional< k_core_degree_type_t > degree_type, std::optional< raft::device_span< int64_t const > > core_numbers, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > > > k_core (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, size_t k, std::optional< k_core_degree_type_t > degree_type, std::optional< raft::device_span< int64_t const > > core_numbers, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t > > generate_erdos_renyi_graph_edgelist_gnp (raft::handle_t const &handle, int32_t num_vertices, float p, int32_t base_vertex_id, uint64_t seed)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t > > generate_erdos_renyi_graph_edgelist_gnm (raft::handle_t const &handle, int32_t num_vertices, size_t m, int32_t base_vertex_id, uint64_t seed)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t > > generate_erdos_renyi_graph_edgelist_gnp (raft::handle_t const &handle, int64_t num_vertices, float p, int64_t base_vertex_id, uint64_t seed)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t > > generate_erdos_renyi_graph_edgelist_gnm (raft::handle_t const &handle, int64_t num_vertices, size_t m, int64_t base_vertex_id, uint64_t seed)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t > > generate_bipartite_rmat_edgelist< int32_t > (raft::handle_t const &handle, raft::random::RngState &rng_state, size_t src_scale, size_t dst_scale, size_t num_edges, double a, double b, double c)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t > > generate_bipartite_rmat_edgelist< int64_t > (raft::handle_t const &handle, raft::random::RngState &rng_state, size_t src_scale, size_t dst_scale, size_t num_edges, double a, double b, double c)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t > > generate_rmat_edgelist< int32_t > (raft::handle_t const &handle, raft::random::RngState &rng_state, size_t scale, size_t num_edges, double a, double b, double c, bool clip_and_flip, bool scramble_vertex_ids)
template std::vector< std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t > > > generate_rmat_edgelists< int32_t > (raft::handle_t const &handle, raft::random::RngState &rng_state, size_t n_edgelists, size_t min_scale, size_t max_scale, size_t edge_factor, generator_distribution_t size_distribution, generator_distribution_t edge_distribution, bool clip_and_flip, bool scramble_vertex_ids)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t > > generate_rmat_edgelist< int32_t > (raft::handle_t const &handle, size_t scale, size_t num_edges, double a, double b, double c, uint64_t seed, bool clip_and_flip, bool scramble_vertex_ids)
template std::vector< std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t > > > generate_rmat_edgelists< int32_t > (raft::handle_t const &handle, size_t n_edgelists, size_t min_scale, size_t max_scale, size_t edge_factor, generator_distribution_t size_distribution, generator_distribution_t edge_distribution, uint64_t seed, bool clip_and_flip, bool scramble_vertex_ids)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t > > generate_rmat_edgelist< int64_t > (raft::handle_t const &handle, raft::random::RngState &rng_state, size_t scale, size_t num_edges, double a, double b, double c, bool clip_and_flip, bool scramble_vertex_ids)
template std::vector< std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t > > > generate_rmat_edgelists< int64_t > (raft::handle_t const &handle, raft::random::RngState &rng_state, size_t n_edgelists, size_t min_scale, size_t max_scale, size_t edge_factor, generator_distribution_t size_distribution, generator_distribution_t edge_distribution, bool clip_and_flip, bool scramble_vertex_ids)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t > > generate_rmat_edgelist< int64_t > (raft::handle_t const &handle, size_t scale, size_t num_edges, double a, double b, double c, uint64_t seed, bool clip_and_flip, bool scramble_vertex_ids)
template std::vector< std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t > > > generate_rmat_edgelists< int64_t > (raft::handle_t const &handle, size_t n_edgelists, size_t min_scale, size_t max_scale, size_t edge_factor, generator_distribution_t size_distribution, generator_distribution_t edge_distribution, uint64_t seed, bool clip_and_flip, bool scramble_vertex_ids)
template rmm::device_uvector< int32_t > scramble_vertex_ids (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&vertices, size_t lgN)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t > > scramble_vertex_ids (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&srcs, rmm::device_uvector< int32_t > &&dsts, size_t lgN)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > > > combine_edgelists (raft::handle_t const &handle, std::vector< rmm::device_uvector< int32_t > > &&sources, std::vector< rmm::device_uvector< int32_t > > &&dests, std::optional< std::vector< rmm::device_uvector< float > > > &&optional_d_weights, bool remove_multi_edges)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > > > combine_edgelists (raft::handle_t const &handle, std::vector< rmm::device_uvector< int32_t > > &&sources, std::vector< rmm::device_uvector< int32_t > > &&dests, std::optional< std::vector< rmm::device_uvector< double > > > &&optional_d_weights, bool remove_multi_edges)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > > > symmetrize_edgelist_from_triangular (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&d_src_v, rmm::device_uvector< int32_t > &&d_dst_v, std::optional< rmm::device_uvector< float > > &&optional_d_weights_v, bool check_diagonal)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > > > symmetrize_edgelist_from_triangular (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&d_src_v, rmm::device_uvector< int32_t > &&d_dst_v, std::optional< rmm::device_uvector< double > > &&optional_d_weights_v, bool check_diagonal)
template rmm::device_uvector< int64_t > scramble_vertex_ids (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&vertices, size_t lgN)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t > > scramble_vertex_ids (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&srcs, rmm::device_uvector< int64_t > &&dsts, size_t lgN)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > > > combine_edgelists (raft::handle_t const &handle, std::vector< rmm::device_uvector< int64_t > > &&sources, std::vector< rmm::device_uvector< int64_t > > &&dests, std::optional< std::vector< rmm::device_uvector< float > > > &&optional_d_weights, bool remove_multi_edges)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > > > combine_edgelists (raft::handle_t const &handle, std::vector< rmm::device_uvector< int64_t > > &&sources, std::vector< rmm::device_uvector< int64_t > > &&dests, std::optional< std::vector< rmm::device_uvector< double > > > &&optional_d_weights, bool remove_multi_edges)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > > > symmetrize_edgelist_from_triangular (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&d_src_v, rmm::device_uvector< int64_t > &&d_dst_v, std::optional< rmm::device_uvector< float > > &&optional_d_weights_v, bool check_diagonal)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > > > symmetrize_edgelist_from_triangular (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&d_src_v, rmm::device_uvector< int64_t > &&d_dst_v, std::optional< rmm::device_uvector< double > > &&optional_d_weights_v, bool check_diagonal)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t > > generate_path_graph_edgelist (raft::handle_t const &handle, std::vector< std::tuple< int32_t, int32_t > > const &component_parms_v)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t > > generate_2d_mesh_graph_edgelist (raft::handle_t const &handle, std::vector< std::tuple< int32_t, int32_t, int32_t > > const &component_parms_v)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t > > generate_3d_mesh_graph_edgelist (raft::handle_t const &handle, std::vector< std::tuple< int32_t, int32_t, int32_t, int32_t > > const &component_parms_v)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t > > generate_complete_graph_edgelist (raft::handle_t const &handle, std::vector< std::tuple< int32_t, int32_t > > const &component_parms_v)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t > > generate_path_graph_edgelist (raft::handle_t const &handle, std::vector< std::tuple< int64_t, int64_t > > const &component_parms_v)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t > > generate_2d_mesh_graph_edgelist (raft::handle_t const &handle, std::vector< std::tuple< int64_t, int64_t, int64_t > > const &component_parms_v)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t > > generate_3d_mesh_graph_edgelist (raft::handle_t const &handle, std::vector< std::tuple< int64_t, int64_t, int64_t, int64_t > > const &component_parms_v)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t > > generate_complete_graph_edgelist (raft::handle_t const &handle, std::vector< std::tuple< int64_t, int64_t > > const &component_parms_v)
template void force_atlas2< int, int, float > (raft::handle_t const &handle, legacy::GraphCOOView< int, int, float > &graph, float *pos, const int max_iter, float *x_start, float *y_start, bool outbound_attraction_distribution, bool lin_log_mode, bool prevent_overlapping, const float edge_weight_influence, const float jitter_tolerance, bool barnes_hut_optimize, const float barnes_hut_theta, const float scaling_ratio, bool strong_gravity_mode, const float gravity, bool verbose, internals::GraphBasedDimRedCallback *callback)
template void force_atlas2< int, int, double > (raft::handle_t const &handle, legacy::GraphCOOView< int, int, double > &graph, float *pos, const int max_iter, float *x_start, float *y_start, bool outbound_attraction_distribution, bool lin_log_mode, bool prevent_overlapping, const float edge_weight_influence, const float jitter_tolerance, bool barnes_hut_optimize, const float barnes_hut_theta, const float scaling_ratio, bool strong_gravity_mode, const float gravity, bool verbose, internals::GraphBasedDimRedCallback *callback)
template int32_t hungarian< int32_t, int32_t, int32_t > (raft::handle_t const &, legacy::GraphCOOView< int32_t, int32_t, int32_t > const &, int32_t, int32_t const *, int32_t *, int32_t)
template float hungarian< int32_t, int32_t, float > (raft::handle_t const &, legacy::GraphCOOView< int32_t, int32_t, float > const &, int32_t, int32_t const *, int32_t *, float)
template double hungarian< int32_t, int32_t, double > (raft::handle_t const &, legacy::GraphCOOView< int32_t, int32_t, double > const &, int32_t, int32_t const *, int32_t *, double)
template int32_t hungarian< int32_t, int32_t, int32_t > (raft::handle_t const &, legacy::GraphCOOView< int32_t, int32_t, int32_t > const &, int32_t, int32_t const *, int32_t *)
template float hungarian< int32_t, int32_t, float > (raft::handle_t const &, legacy::GraphCOOView< int32_t, int32_t, float > const &, int32_t, int32_t const *, int32_t *)
template double hungarian< int32_t, int32_t, double > (raft::handle_t const &, legacy::GraphCOOView< int32_t, int32_t, double > const &, int32_t, int32_t const *, int32_t *)
template std::tuple< float, size_t > hits (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, true > const &graph_view, float *const hubs, float *const authorities, float epsilon, size_t max_iterations, bool has_initial_hubs_guess, bool normalize, bool do_expensive_check)
template std::tuple< double, size_t > hits (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, true > const &graph_view, double *const hubs, double *const authorities, double epsilon, size_t max_iterations, bool has_initial_hubs_guess, bool normalize, bool do_expensive_check)
template std::tuple< float, size_t > hits (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, true > const &graph_view, float *const hubs, float *const authorities, float epsilon, size_t max_iterations, bool has_initial_hubs_guess, bool normalize, bool do_expensive_check)
template std::tuple< double, size_t > hits (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, true > const &graph_view, double *const hubs, double *const authorities, double epsilon, size_t max_iterations, bool has_initial_hubs_guess, bool normalize, bool do_expensive_check)
template std::tuple< float, size_t > hits (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, false > const &graph_view, float *const hubs, float *const authorities, float epsilon, size_t max_iterations, bool has_initial_hubs_guess, bool normalize, bool do_expensive_check)
template std::tuple< double, size_t > hits (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, false > const &graph_view, double *const hubs, double *const authorities, double epsilon, size_t max_iterations, bool has_initial_hubs_guess, bool normalize, bool do_expensive_check)
template std::tuple< float, size_t > hits (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, false > const &graph_view, float *const hubs, float *const authorities, float epsilon, size_t max_iterations, bool has_initial_hubs_guess, bool normalize, bool do_expensive_check)
template std::tuple< double, size_t > hits (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, false > const &graph_view, double *const hubs, double *const authorities, double epsilon, size_t max_iterations, bool has_initial_hubs_guess, bool normalize, bool do_expensive_check)
template void pagerank (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, true > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, std::optional< float const * > precomputed_vertex_out_weight_sums, std::optional< int32_t const * > personalization_vertices, std::optional< float const * > personalization_values, std::optional< int32_t > personalization_vector_size, float *pageranks, float alpha, float epsilon, size_t max_iterations, bool has_initial_guess, bool do_expensive_check)
template void pagerank (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, true > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, std::optional< double const * > precomputed_vertex_out_weight_sums, std::optional< int32_t const * > personalization_vertices, std::optional< double const * > personalization_values, std::optional< int32_t > personalization_vector_size, double *pageranks, double alpha, double epsilon, size_t max_iterations, bool has_initial_guess, bool do_expensive_check)
template std::tuple< rmm::device_uvector< float >, centrality_algorithm_metadata_t > pagerank (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, true > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, std::optional< raft::device_span< float const > > precomputed_vertex_out_weight_sums, std::optional< std::tuple< raft::device_span< int32_t const >, raft::device_span< float const > > > personalization, std::optional< raft::device_span< float const > > initial_pageranks, float alpha, float epsilon, size_t max_iterations, bool do_expensive_check)
template std::tuple< rmm::device_uvector< double >, centrality_algorithm_metadata_t > pagerank (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, true > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, std::optional< raft::device_span< double const > > precomputed_vertex_out_weight_sums, std::optional< std::tuple< raft::device_span< int32_t const >, raft::device_span< double const > > > personalization, std::optional< raft::device_span< double const > > initial_pageranks, double alpha, double epsilon, size_t max_iterations, bool do_expensive_check)
template void pagerank (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, true > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, std::optional< float const * > precomputed_vertex_out_weight_sums, std::optional< int64_t const * > personalization_vertices, std::optional< float const * > personalization_values, std::optional< int64_t > personalization_vector_size, float *pageranks, float alpha, float epsilon, size_t max_iterations, bool has_initial_guess, bool do_expensive_check)
template void pagerank (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, true > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, std::optional< double const * > precomputed_vertex_out_weight_sums, std::optional< int64_t const * > personalization_vertices, std::optional< double const * > personalization_values, std::optional< int64_t > personalization_vector_size, double *pageranks, double alpha, double epsilon, size_t max_iterations, bool has_initial_guess, bool do_expensive_check)
template std::tuple< rmm::device_uvector< float >, centrality_algorithm_metadata_t > pagerank (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, true > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, std::optional< raft::device_span< float const > > precomputed_vertex_out_weight_sums, std::optional< std::tuple< raft::device_span< int64_t const >, raft::device_span< float const > > > personalization, std::optional< raft::device_span< float const > > initial_pageranks, float alpha, float epsilon, size_t max_iterations, bool do_expensive_check)
template std::tuple< rmm::device_uvector< double >, centrality_algorithm_metadata_t > pagerank (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, true > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, std::optional< raft::device_span< double const > > precomputed_vertex_out_weight_sums, std::optional< std::tuple< raft::device_span< int64_t const >, raft::device_span< double const > > > personalization, std::optional< raft::device_span< double const > > initial_pageranks, double alpha, double epsilon, size_t max_iterations, bool do_expensive_check)
template void pagerank (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, false > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, std::optional< float const * > precomputed_vertex_out_weight_sums, std::optional< int32_t const * > personalization_vertices, std::optional< float const * > personalization_values, std::optional< int32_t > personalization_vector_size, float *pageranks, float alpha, float epsilon, size_t max_iterations, bool has_initial_guess, bool do_expensive_check)
template void pagerank (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, false > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, std::optional< double const * > precomputed_vertex_out_weight_sums, std::optional< int32_t const * > personalization_vertices, std::optional< double const * > personalization_values, std::optional< int32_t > personalization_vector_size, double *pageranks, double alpha, double epsilon, size_t max_iterations, bool has_initial_guess, bool do_expensive_check)
template std::tuple< rmm::device_uvector< float >, centrality_algorithm_metadata_t > pagerank (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, false > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, std::optional< raft::device_span< float const > > precomputed_vertex_out_weight_sums, std::optional< std::tuple< raft::device_span< int32_t const >, raft::device_span< float const > > > personalization, std::optional< raft::device_span< float const > > initial_pageranks, float alpha, float epsilon, size_t max_iterations, bool do_expensive_check)
template std::tuple< rmm::device_uvector< double >, centrality_algorithm_metadata_t > pagerank (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, false > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, std::optional< raft::device_span< double const > > precomputed_vertex_out_weight_sums, std::optional< std::tuple< raft::device_span< int32_t const >, raft::device_span< double const > > > personalization, std::optional< raft::device_span< double const > > initial_pageranks, double alpha, double epsilon, size_t max_iterations, bool do_expensive_check)
template void pagerank (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, false > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, std::optional< float const * > precomputed_vertex_out_weight_sums, std::optional< int64_t const * > personalization_vertices, std::optional< float const * > personalization_values, std::optional< int64_t > personalization_vector_size, float *pageranks, float alpha, float epsilon, size_t max_iterations, bool has_initial_guess, bool do_expensive_check)
template void pagerank (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, false > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, std::optional< double const * > precomputed_vertex_out_weight_sums, std::optional< int64_t const * > personalization_vertices, std::optional< double const * > personalization_values, std::optional< int64_t > personalization_vector_size, double *pageranks, double alpha, double epsilon, size_t max_iterations, bool has_initial_guess, bool do_expensive_check)
template std::tuple< rmm::device_uvector< float >, centrality_algorithm_metadata_t > pagerank (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, false > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, std::optional< raft::device_span< float const > > precomputed_vertex_out_weight_sums, std::optional< std::tuple< raft::device_span< int64_t const >, raft::device_span< float const > > > personalization, std::optional< raft::device_span< float const > > initial_pageranks, float alpha, float epsilon, size_t max_iterations, bool do_expensive_check)
template std::tuple< rmm::device_uvector< double >, centrality_algorithm_metadata_t > pagerank (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, false > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, std::optional< raft::device_span< double const > > precomputed_vertex_out_weight_sums, std::optional< std::tuple< raft::device_span< int64_t const >, raft::device_span< double const > > > personalization, std::optional< raft::device_span< double const > > initial_pageranks, double alpha, double epsilon, size_t max_iterations, bool do_expensive_check)
template rmm::device_uvector< float > cosine_similarity_coefficients (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, std::tuple< raft::device_span< int32_t const >, raft::device_span< int32_t const > > vertex_pairs, bool do_expensive_check)
template rmm::device_uvector< double > cosine_similarity_coefficients (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, std::tuple< raft::device_span< int32_t const >, raft::device_span< int32_t const > > vertex_pairs, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, rmm::device_uvector< float > > cosine_similarity_all_pairs_coefficients (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, std::optional< raft::device_span< int32_t const > > vertices, std::optional< size_t > topk, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, rmm::device_uvector< double > > cosine_similarity_all_pairs_coefficients (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, std::optional< raft::device_span< int32_t const > > vertices, std::optional< size_t > topk, bool do_expensive_check)
template rmm::device_uvector< float > cosine_similarity_coefficients (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, std::tuple< raft::device_span< int64_t const >, raft::device_span< int64_t const > > vertex_pairs, bool do_expensive_check)
template rmm::device_uvector< double > cosine_similarity_coefficients (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, std::tuple< raft::device_span< int64_t const >, raft::device_span< int64_t const > > vertex_pairs, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, rmm::device_uvector< float > > cosine_similarity_all_pairs_coefficients (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, std::optional< raft::device_span< int64_t const > > vertices, std::optional< size_t > topk, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, rmm::device_uvector< double > > cosine_similarity_all_pairs_coefficients (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, std::optional< raft::device_span< int64_t const > > vertices, std::optional< size_t > topk, bool do_expensive_check)
template rmm::device_uvector< float > cosine_similarity_coefficients (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, std::tuple< raft::device_span< int32_t const >, raft::device_span< int32_t const > > vertex_pairs, bool do_expensive_check)
template rmm::device_uvector< double > cosine_similarity_coefficients (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, std::tuple< raft::device_span< int32_t const >, raft::device_span< int32_t const > > vertex_pairs, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, rmm::device_uvector< float > > cosine_similarity_all_pairs_coefficients (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, std::optional< raft::device_span< int32_t const > > vertices, std::optional< size_t > topk, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, rmm::device_uvector< double > > cosine_similarity_all_pairs_coefficients (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, std::optional< raft::device_span< int32_t const > > vertices, std::optional< size_t > topk, bool do_expensive_check)
template rmm::device_uvector< float > cosine_similarity_coefficients (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, std::tuple< raft::device_span< int64_t const >, raft::device_span< int64_t const > > vertex_pairs, bool do_expensive_check)
template rmm::device_uvector< double > cosine_similarity_coefficients (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, std::tuple< raft::device_span< int64_t const >, raft::device_span< int64_t const > > vertex_pairs, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, rmm::device_uvector< float > > cosine_similarity_all_pairs_coefficients (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, std::optional< raft::device_span< int64_t const > > vertices, std::optional< size_t > topk, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, rmm::device_uvector< double > > cosine_similarity_all_pairs_coefficients (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, std::optional< raft::device_span< int64_t const > > vertices, std::optional< size_t > topk, bool do_expensive_check)
template rmm::device_uvector< float > jaccard_coefficients (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, std::tuple< raft::device_span< int32_t const >, raft::device_span< int32_t const > > vertex_pairs, bool do_expensive_check)
template rmm::device_uvector< double > jaccard_coefficients (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, std::tuple< raft::device_span< int32_t const >, raft::device_span< int32_t const > > vertex_pairs, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, rmm::device_uvector< float > > jaccard_all_pairs_coefficients (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, std::optional< raft::device_span< int32_t const > > vertices, std::optional< size_t > topk, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, rmm::device_uvector< double > > jaccard_all_pairs_coefficients (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, std::optional< raft::device_span< int32_t const > > vertices, std::optional< size_t > topk, bool do_expensive_check)
template rmm::device_uvector< float > jaccard_coefficients (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, std::tuple< raft::device_span< int64_t const >, raft::device_span< int64_t const > > vertex_pairs, bool do_expensive_check)
template rmm::device_uvector< double > jaccard_coefficients (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, std::tuple< raft::device_span< int64_t const >, raft::device_span< int64_t const > > vertex_pairs, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, rmm::device_uvector< float > > jaccard_all_pairs_coefficients (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, std::optional< raft::device_span< int64_t const > > vertices, std::optional< size_t > topk, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, rmm::device_uvector< double > > jaccard_all_pairs_coefficients (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, std::optional< raft::device_span< int64_t const > > vertices, std::optional< size_t > topk, bool do_expensive_check)
template rmm::device_uvector< float > jaccard_coefficients (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, std::tuple< raft::device_span< int32_t const >, raft::device_span< int32_t const > > vertex_pairs, bool do_expensive_check)
template rmm::device_uvector< double > jaccard_coefficients (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, std::tuple< raft::device_span< int32_t const >, raft::device_span< int32_t const > > vertex_pairs, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, rmm::device_uvector< float > > jaccard_all_pairs_coefficients (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, std::optional< raft::device_span< int32_t const > > vertices, std::optional< size_t > topk, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, rmm::device_uvector< double > > jaccard_all_pairs_coefficients (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, std::optional< raft::device_span< int32_t const > > vertices, std::optional< size_t > topk, bool do_expensive_check)
template rmm::device_uvector< float > jaccard_coefficients (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, std::tuple< raft::device_span< int64_t const >, raft::device_span< int64_t const > > vertex_pairs, bool do_expensive_check)
template rmm::device_uvector< double > jaccard_coefficients (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, std::tuple< raft::device_span< int64_t const >, raft::device_span< int64_t const > > vertex_pairs, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, rmm::device_uvector< float > > jaccard_all_pairs_coefficients (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, std::optional< raft::device_span< int64_t const > > vertices, std::optional< size_t > topk, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, rmm::device_uvector< double > > jaccard_all_pairs_coefficients (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, std::optional< raft::device_span< int64_t const > > vertices, std::optional< size_t > topk, bool do_expensive_check)
template rmm::device_uvector< float > overlap_coefficients (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, std::tuple< raft::device_span< int32_t const >, raft::device_span< int32_t const > > vertex_pairs, bool do_expensive_check)
template rmm::device_uvector< double > overlap_coefficients (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, std::tuple< raft::device_span< int32_t const >, raft::device_span< int32_t const > > vertex_pairs, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, rmm::device_uvector< float > > overlap_all_pairs_coefficients (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, std::optional< raft::device_span< int32_t const > > vertices, std::optional< size_t > topk, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, rmm::device_uvector< double > > overlap_all_pairs_coefficients (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, std::optional< raft::device_span< int32_t const > > vertices, std::optional< size_t > topk, bool do_expensive_check)
template rmm::device_uvector< float > overlap_coefficients (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, std::tuple< raft::device_span< int64_t const >, raft::device_span< int64_t const > > vertex_pairs, bool do_expensive_check)
template rmm::device_uvector< double > overlap_coefficients (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, std::tuple< raft::device_span< int64_t const >, raft::device_span< int64_t const > > vertex_pairs, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, rmm::device_uvector< float > > overlap_all_pairs_coefficients (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, std::optional< raft::device_span< int64_t const > > vertices, std::optional< size_t > topk, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, rmm::device_uvector< double > > overlap_all_pairs_coefficients (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, std::optional< raft::device_span< int64_t const > > vertices, std::optional< size_t > topk, bool do_expensive_check)
template rmm::device_uvector< float > overlap_coefficients (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, std::tuple< raft::device_span< int32_t const >, raft::device_span< int32_t const > > vertex_pairs, bool do_expensive_check)
template rmm::device_uvector< double > overlap_coefficients (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, std::tuple< raft::device_span< int32_t const >, raft::device_span< int32_t const > > vertex_pairs, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, rmm::device_uvector< float > > overlap_all_pairs_coefficients (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, std::optional< raft::device_span< int32_t const > > vertices, std::optional< size_t > topk, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, rmm::device_uvector< double > > overlap_all_pairs_coefficients (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, std::optional< raft::device_span< int32_t const > > vertices, std::optional< size_t > topk, bool do_expensive_check)
template rmm::device_uvector< float > overlap_coefficients (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, std::tuple< raft::device_span< int64_t const >, raft::device_span< int64_t const > > vertex_pairs, bool do_expensive_check)
template rmm::device_uvector< double > overlap_coefficients (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, std::tuple< raft::device_span< int64_t const >, raft::device_span< int64_t const > > vertex_pairs, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, rmm::device_uvector< float > > overlap_all_pairs_coefficients (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, std::optional< raft::device_span< int64_t const > > vertices, std::optional< size_t > topk, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, rmm::device_uvector< double > > overlap_all_pairs_coefficients (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, std::optional< raft::device_span< int64_t const > > vertices, std::optional< size_t > topk, bool do_expensive_check)
template rmm::device_uvector< float > sorensen_coefficients (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, std::tuple< raft::device_span< int32_t const >, raft::device_span< int32_t const > > vertex_pairs, bool do_expensive_check)
template rmm::device_uvector< double > sorensen_coefficients (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, std::tuple< raft::device_span< int32_t const >, raft::device_span< int32_t const > > vertex_pairs, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, rmm::device_uvector< float > > sorensen_all_pairs_coefficients (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, std::optional< raft::device_span< int32_t const > > vertices, std::optional< size_t > topk, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, rmm::device_uvector< double > > sorensen_all_pairs_coefficients (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, std::optional< raft::device_span< int32_t const > > vertices, std::optional< size_t > topk, bool do_expensive_check)
template rmm::device_uvector< float > sorensen_coefficients (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, std::tuple< raft::device_span< int64_t const >, raft::device_span< int64_t const > > vertex_pairs, bool do_expensive_check)
template rmm::device_uvector< double > sorensen_coefficients (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, std::tuple< raft::device_span< int64_t const >, raft::device_span< int64_t const > > vertex_pairs, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, rmm::device_uvector< float > > sorensen_all_pairs_coefficients (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, std::optional< raft::device_span< int64_t const > > vertices, std::optional< size_t > topk, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, rmm::device_uvector< double > > sorensen_all_pairs_coefficients (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, std::optional< raft::device_span< int64_t const > > vertices, std::optional< size_t > topk, bool do_expensive_check)
template rmm::device_uvector< float > sorensen_coefficients (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, std::tuple< raft::device_span< int32_t const >, raft::device_span< int32_t const > > vertex_pairs, bool do_expensive_check)
template rmm::device_uvector< double > sorensen_coefficients (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, std::tuple< raft::device_span< int32_t const >, raft::device_span< int32_t const > > vertex_pairs, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, rmm::device_uvector< float > > sorensen_all_pairs_coefficients (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, std::optional< raft::device_span< int32_t const > > vertices, std::optional< size_t > topk, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, rmm::device_uvector< double > > sorensen_all_pairs_coefficients (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, std::optional< raft::device_span< int32_t const > > vertices, std::optional< size_t > topk, bool do_expensive_check)
template rmm::device_uvector< float > sorensen_coefficients (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, std::tuple< raft::device_span< int64_t const >, raft::device_span< int64_t const > > vertex_pairs, bool do_expensive_check)
template rmm::device_uvector< double > sorensen_coefficients (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, std::tuple< raft::device_span< int64_t const >, raft::device_span< int64_t const > > vertex_pairs, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, rmm::device_uvector< float > > sorensen_all_pairs_coefficients (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, std::optional< raft::device_span< int64_t const > > vertices, std::optional< size_t > topk, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, rmm::device_uvector< double > > sorensen_all_pairs_coefficients (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, std::optional< raft::device_span< int64_t const > > vertices, std::optional< size_t > topk, bool do_expensive_check)
template<typename vertex_t, typename edge_id_t, typename edge_type_t, bool multi_gpu>
std::tuple<rmm::device_uvector<vertex_t>, rmm::device_uvector<vertex_t>> lookup_endpoints_from_edge_ids_and_single_type(raft::handle_t const &handle, lookup_container_t<edge_id_t, edge_type_t, vertex_t> const &search_container, raft::device_span<edge_id_t const> edge_ids_to_lookup, edge_type_t edge_type_to_lookup)#
template<typename vertex_t, typename edge_id_t, typename edge_type_t, bool multi_gpu>
std::tuple<rmm::device_uvector<vertex_t>, rmm::device_uvector<vertex_t>> lookup_endpoints_from_edge_ids_and_types(raft::handle_t const &handle, lookup_container_t<edge_id_t, edge_type_t, vertex_t> const &search_container, raft::device_span<edge_id_t const> edge_ids_to_lookup, raft::device_span<edge_type_t const> edge_types_to_lookup)#
template lookup_container_t< int32_t, int32_t, int32_t > build_edge_id_and_type_to_src_dst_lookup_map (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, edge_property_view_t< int32_t, int32_t const * > edge_id_view, edge_property_view_t< int32_t, int32_t const * > edge_type_view)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t > > lookup_endpoints_from_edge_ids_and_single_type< int32_t, int32_t, int32_t, true > (raft::handle_t const &handle, lookup_container_t< int32_t, int32_t, int32_t > const &search_container, raft::device_span< int32_t const > edge_ids_to_lookup, int32_t edge_type_to_lookup)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t > > lookup_endpoints_from_edge_ids_and_types< int32_t, int32_t, int32_t, true > (raft::handle_t const &handle, lookup_container_t< int32_t, int32_t, int32_t > const &search_container, raft::device_span< int32_t const > edge_ids_to_lookup, raft::device_span< int32_t const > edge_types_to_lookup)
template lookup_container_t< int64_t, int32_t, int32_t > build_edge_id_and_type_to_src_dst_lookup_map (raft::handle_t const &handle, graph_view_t< int32_t, int64_t, false, true > const &graph_view, edge_property_view_t< int64_t, int64_t const * > edge_id_view, edge_property_view_t< int64_t, int32_t const * > edge_type_view)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t > > lookup_endpoints_from_edge_ids_and_single_type< int32_t, int64_t, int32_t, true > (raft::handle_t const &handle, lookup_container_t< int64_t, int32_t, int32_t > const &search_container, raft::device_span< int64_t const > edge_ids_to_lookup, int32_t edge_type_to_lookup)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t > > lookup_endpoints_from_edge_ids_and_types< int32_t, int64_t, int32_t, true > (raft::handle_t const &handle, lookup_container_t< int64_t, int32_t, int32_t > const &search_container, raft::device_span< int64_t const > edge_ids_to_lookup, raft::device_span< int32_t const > edge_types_to_lookup)
template lookup_container_t< int64_t, int32_t, int64_t > build_edge_id_and_type_to_src_dst_lookup_map (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, edge_property_view_t< int64_t, int64_t const * > edge_id_view, edge_property_view_t< int64_t, int32_t const * > edge_type_view)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t > > lookup_endpoints_from_edge_ids_and_single_type< int64_t, int64_t, int32_t, true > (raft::handle_t const &handle, lookup_container_t< int64_t, int32_t, int64_t > const &search_container, raft::device_span< int64_t const > edge_ids_to_lookup, int32_t edge_type_to_lookup)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t > > lookup_endpoints_from_edge_ids_and_types< int64_t, int64_t, int32_t, true > (raft::handle_t const &handle, lookup_container_t< int64_t, int32_t, int64_t > const &search_container, raft::device_span< int64_t const > edge_ids_to_lookup, raft::device_span< int32_t const > edge_types_to_lookup)
template lookup_container_t< int32_t, int32_t, int32_t > build_edge_id_and_type_to_src_dst_lookup_map (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, edge_property_view_t< int32_t, int32_t const * > edge_id_view, edge_property_view_t< int32_t, int32_t const * > edge_type_view)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t > > lookup_endpoints_from_edge_ids_and_single_type< int32_t, int32_t, int32_t, false > (raft::handle_t const &handle, lookup_container_t< int32_t, int32_t, int32_t > const &search_container, raft::device_span< int32_t const > edge_ids_to_lookup, int32_t const edge_type_to_lookup)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t > > lookup_endpoints_from_edge_ids_and_types< int32_t, int32_t, int32_t, false > (raft::handle_t const &handle, lookup_container_t< int32_t, int32_t, int32_t > const &search_container, raft::device_span< int32_t const > edge_ids_to_lookup, raft::device_span< int32_t const > edge_types_to_lookup)
template lookup_container_t< int64_t, int32_t, int32_t > build_edge_id_and_type_to_src_dst_lookup_map (raft::handle_t const &handle, graph_view_t< int32_t, int64_t, false, false > const &graph_view, edge_property_view_t< int64_t, int64_t const * > edge_id_view, edge_property_view_t< int64_t, int32_t const * > edge_type_view)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t > > lookup_endpoints_from_edge_ids_and_single_type< int32_t, int64_t, int32_t, false > (raft::handle_t const &handle, lookup_container_t< int64_t, int32_t, int32_t > const &search_container, raft::device_span< int64_t const > edge_ids_to_lookup, int32_t edge_type_to_lookup)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t > > lookup_endpoints_from_edge_ids_and_types< int32_t, int64_t, int32_t, false > (raft::handle_t const &handle, lookup_container_t< int64_t, int32_t, int32_t > const &search_container, raft::device_span< int64_t const > edge_ids_to_lookup, raft::device_span< int32_t const > edge_types_to_lookup)
template lookup_container_t< int64_t, int32_t, int64_t > build_edge_id_and_type_to_src_dst_lookup_map (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, edge_property_view_t< int64_t, int64_t const * > edge_id_view, edge_property_view_t< int64_t, int32_t const * > edge_type_view)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t > > lookup_endpoints_from_edge_ids_and_single_type< int64_t, int64_t, int32_t, false > (raft::handle_t const &handle, lookup_container_t< int64_t, int32_t, int64_t > const &search_container, raft::device_span< int64_t const > edge_ids_to_lookup, int32_t edge_type_to_lookup)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t > > lookup_endpoints_from_edge_ids_and_types< int64_t, int64_t, int32_t, false > (raft::handle_t const &handle, lookup_container_t< int64_t, int32_t, int64_t > const &search_container, raft::device_span< int64_t const > edge_ids_to_lookup, raft::device_span< int32_t const > edge_types_to_lookup)
template<typename GraphViewType, typename EdgeSrcValueInputWrapper, typename EdgeDstValueInputWrapper, typename EdgeValueInputWrapper, typename EdgeOp>
GraphViewType::edge_type count_if_e(raft::handle_t const &handle, GraphViewType const &graph_view, EdgeSrcValueInputWrapper edge_src_value_input, EdgeDstValueInputWrapper edge_dst_value_input, EdgeValueInputWrapper edge_value_input, EdgeOp e_op, bool do_expensive_check = false)#

统计满足给定谓词的边的数量。

此函数受 thrust::count_if() 启发。

模板参数
  • GraphViewType – 传入的非拥有图对象的类型。

  • EdgeSrcValueInputWrapper – 边源属性值包装器的类型。

  • EdgeDstValueInputWrapper – 边目标属性值包装器的类型。

  • EdgeValueInputWrapper – 边属性值包装器的类型。

  • EdgeOp – 五元边操作符的类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 非拥有图对象。

  • edge_src_value_input – 用于访问源输入属性值(对于多 GPU 中分配给此进程的边源)的包装器。使用 cugraph::edge_src_property_t::view()(如果 e_op 需要访问源属性值)或 cugraph::edge_src_dummy_property_t::view()(如果 e_op 不访问源属性值)。使用 update_edge_src_property 填充此包装器。

  • edge_dst_value_input – 用于访问目标输入属性值(对于多 GPU 中分配给此进程的边目标)的包装器。使用 cugraph::edge_dst_property_t::view()(如果 e_op 需要访问目标属性值)或 cugraph::edge_dst_dummy_property_t::view()(如果 e_op 不访问目标属性值)。使用 update_edge_dst_property 填充此包装器。

  • edge_value_input – 用于访问边输入属性值(对于多 GPU 中分配给此进程的边)的包装器。使用 cugraph::edge_property_t::view()(如果 e_op 需要访问边属性值)或 cugraph::edge_dummy_property_t::view()(如果 e_op 不访问边属性值)。

  • e_op – 五元操作符,接受边源、边目标、源属性值、目标属性值和边属性值,如果此边应包含在返回计数中,则返回 true。

  • do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)。

返回

GraphViewType::edge_type e_op 返回 true 的次数。

template<typename GraphViewType, typename VertexValueInputIterator, typename VertexOp>
GraphViewType::vertex_type count_if_v(raft::handle_t const &handle, GraphViewType const &graph_view, VertexValueInputIterator vertex_value_input_first, VertexOp v_op, bool do_expensive_check = false)#

统计满足给定谓词的顶点的数量。

此版本遍历整个图顶点集。此函数受 thrust::count_if() 启发。

模板参数
  • GraphViewType – 传入的非拥有图对象的类型。

  • VertexValueInputIterator – 顶点属性值迭代器的类型。

  • VertexOp – 一元谓词操作符的类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 非拥有图对象。

  • vertex_value_input_first – 指向第一个(包含)顶点(在多 GPU 中分配给此进程)的顶点属性值的迭代器。vertex_value_input_last(不包含)推导为 vertex_value_input_first + graph_view.local_vertex_partition_range_size()

  • v_op – 二元操作符,接受顶点 ID 和 *(vertex_value_input_first + i)(其中 i 在 [0, graph_view.local_vertex_partition_range_size()) 范围内),如果此顶点应包含在返回计数中,则返回 true。

  • do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)。

返回

GraphViewType::vertex_type v_op 返回 true 的次数。

template<typename GraphViewType, typename EdgeSrcValueInputWrapper, typename EdgeDstValueInputWrapper, typename EdgeValueInputWrapper, typename EdgeOp>
dataframe_buffer_type_t<typename detail::edge_op_result_type<typename GraphViewType::vertex_type, typename GraphViewType::vertex_type, typename EdgeSrcValueInputWrapper::value_type, typename EdgeDstValueInputWrapper::value_type, typename EdgeValueInputWrapper::value_type, EdgeOp>::type> extract_transform_e(raft::handle_t const &handle, GraphViewType const &graph_view, EdgeSrcValueInputWrapper edge_src_value_input, EdgeDstValueInputWrapper edge_dst_value_input, EdgeOp e_op, bool do_expensive_check = false)#

遍历整个边集并提取所有边函数对象的输出。

模板参数
  • GraphViewType – 传入的非拥有图对象的类型。

  • EdgeSrcValueInputWrapper – 边源属性值包装器的类型。

  • EdgeDstValueInputWrapper – 边目标属性值包装器的类型。

  • EdgeValueInputWrapper – 边属性值包装器的类型。

  • EdgeOp – 五元边操作符的类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 非拥有图对象。

  • edge_src_value_input – 用于访问源输入属性值(对于多 GPU 中分配给此进程的边源)的包装器。使用 cugraph::edge_src_property_t::view()(如果 e_op 需要访问源属性值)或 cugraph::edge_src_dummy_property_t::view()(如果 e_op 不访问源属性值)。使用 update_edge_src_property 填充此包装器。

  • edge_dst_value_input – 用于访问目标输入属性值(对于多 GPU 中分配给此进程的边目标)的包装器。使用 cugraph::edge_dst_property_t::view()(如果 e_op 需要访问目标属性值)或 cugraph::edge_dst_dummy_property_t::view()(如果 e_op 不访问目标属性值)。使用 update_edge_dst_property 填充此包装器。

  • edge_value_input – 用于访问边输入属性值(对于多 GPU 中分配给此进程的边)的包装器。使用 cugraph::edge_property_t::view()(如果 e_op 需要访问边属性值)或 cugraph::edge_dummy_property_t::view()(如果 e_op 不访问边属性值)。

  • e_op – 五元操作符,接受边源、边目标、源属性值、目标属性值和边属性值,并返回 cuda::std::nullopt(如果返回值将被丢弃)或要提取和累积的有效 e_op 输出。

  • do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)。

返回

存储已提取和累积的有效 e_op 返回值的 DataFrame 缓冲区对象。

template<typename GraphViewType, typename EdgeSrcValueInputWrapper, typename EdgeDstValueInputWrapper, typename EdgeValueInputWrapper, typename EdgeOp, typename PredOp>
dataframe_buffer_type_t<typename detail::edge_op_result_type<typename GraphViewType::vertex_type, typename GraphViewType::vertex_type, typename EdgeSrcValueInputWrapper::value_type, typename EdgeDstValueInputWrapper::value_type, typename EdgeValueInputWrapper::value_type, EdgeOp>::type> extract_transform_if_e(raft::handle_t const &handle, GraphViewType const &graph_view, EdgeSrcValueInputWrapper edge_src_value_input, EdgeDstValueInputWrapper edge_dst_value_input, EdgeValueInputWrapper edge_value_input, EdgeOp e_op, PredOp pred_op, bool do_expensive_check = false)#

遍历整个边集并提取有效的边函数输出。

模板参数
  • GraphViewType – 传入的非拥有图对象的类型。

  • EdgeSrcValueInputWrapper – 边源属性值包装器的类型。

  • EdgeDstValueInputWrapper – 边目标属性值包装器的类型。

  • EdgeValueInputWrapper – 边属性值包装器的类型。

  • EdgeOp – 五元边操作符的类型。

  • PredOp – 五元谓词操作符的类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 非拥有图对象。

  • edge_src_value_input – 用于访问源输入属性值(对于多 GPU 中分配给此进程的边源)的包装器。使用 cugraph::edge_src_property_t::view()(如果 e_op 需要访问源属性值)或 cugraph::edge_src_dummy_property_t::view()(如果 e_op 不访问源属性值)。使用 update_edge_src_property 填充此包装器。

  • edge_dst_value_input – 用于访问目标输入属性值(对于多 GPU 中分配给此进程的边目标)的包装器。使用 cugraph::edge_dst_property_t::view()(如果 e_op 需要访问目标属性值)或 cugraph::edge_dst_dummy_property_t::view()(如果 e_op 不访问目标属性值)。使用 update_edge_dst_property 填充此包装器。

  • edge_value_input – 用于访问边输入属性值(对于多 GPU 中分配给此进程的边)的包装器。使用 cugraph::edge_property_t::view()(如果 e_op 需要访问边属性值)或 cugraph::edge_dummy_property_t::view()(如果 e_op 不访问边属性值)。

  • e_op – 五元操作符,接受边源、边目的、源属性值、目的属性值以及边属性值,并返回一个要提取和累加的输出值。

  • pred_op – 五元谓词操作符,接受边源、边目的、源属性值、目的属性值以及边属性值,如果边应该被处理,则返回 true。

  • do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)。

返回

存储已提取和累积的有效 e_op 返回值的 DataFrame 缓冲区对象。

template<typename GraphViewType, typename KeyBucketType, typename EdgeSrcValueInputWrapper, typename EdgeDstValueInputWrapper, typename EdgeValueInputWrapper, typename EdgeOp, typename PredOp>
dataframe_buffer_type_t<typename detail::edge_op_result_type<typename KeyBucketType::key_type, typename GraphViewType::vertex_type, typename EdgeSrcValueInputWrapper::value_type, typename EdgeDstValueInputWrapper::value_type, typename EdgeValueInputWrapper::value_type, EdgeOp>::type> extract_transform_if_v_frontier_outgoing_e(raft::handle_t const &handle, GraphViewType const &graph_view, KeyBucketType const &frontier, EdgeSrcValueInputWrapper edge_src_value_input, EdgeDstValueInputWrapper edge_dst_value_input, EdgeValueInputWrapper edge_value_input, EdgeOp e_op, PredOp pred_op, bool do_expensive_check = false)#

从当前顶点前沿遍历出边并提取有效的边函数输出。

模板参数
  • GraphViewType – 传入的非拥有图对象的类型。

  • KeyBucketType – 抽象当前(标记)顶点前沿的键桶类的类型。

  • EdgeSrcValueInputWrapper – 边源属性值包装器的类型。

  • EdgeDstValueInputWrapper – 边目标属性值包装器的类型。

  • EdgeValueInputWrapper – 边属性值包装器的类型。

  • EdgeOp – 五元边操作符的类型。

  • PredOp – 五元谓词操作符的类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 非拥有图对象。

  • frontier – 表示当前顶点前沿的 KeyBucketTyep 类对象。

  • edge_src_value_input – 用于访问源输入属性值(对于多 GPU 中分配给此进程的边源)的包装器。使用 cugraph::edge_src_property_t::view()(如果 e_op 需要访问源属性值)或 cugraph::edge_src_dummy_property_t::view()(如果 e_op 不访问源属性值)。使用 update_edge_src_property 填充此包装器。

  • edge_dst_value_input – 用于访问目标输入属性值(对于多 GPU 中分配给此进程的边目标)的包装器。使用 cugraph::edge_dst_property_t::view()(如果 e_op 需要访问目标属性值)或 cugraph::edge_dst_dummy_property_t::view()(如果 e_op 不访问目标属性值)。使用 update_edge_dst_property 填充此包装器。

  • edge_value_input – 用于访问边输入属性值(对于多 GPU 中分配给此进程的边)的包装器。使用 cugraph::edge_property_t::view()(如果 e_op 需要访问边属性值)或 cugraph::edge_dummy_property_t::view()(如果 e_op 不访问边属性值)。

  • e_op – 五元操作符,接受边(标记)源、边目的、源属性值、目的属性值以及边属性值,并返回一个要提取和累加的值。

  • pred_op – 五元谓词操作符,接受边(标记)源、边目的、源属性值、目的属性值以及边属性值,返回一个布尔值以确定边是否应该被处理。

  • do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)。

返回

存储已提取和累积的有效 e_op 返回值的 DataFrame 缓冲区对象。

template<typename GraphViewType, typename KeyBucketType, typename EdgeSrcValueInputWrapper, typename EdgeDstValueInputWrapper, typename EdgeValueInputWrapper, typename EdgeOp>
dataframe_buffer_type_t<typename detail::edge_op_result_type<typename KeyBucketType::key_type, typename GraphViewType::vertex_type, typename EdgeSrcValueInputWrapper::value_type, typename EdgeDstValueInputWrapper::value_type, typename EdgeValueInputWrapper::value_type, EdgeOp>::type> extract_transform_v_frontier_outgoing_e(raft::handle_t const &handle, GraphViewType const &graph_view, KeyBucketType const &frontier, EdgeSrcValueInputWrapper edge_src_value_input, EdgeDstValueInputWrapper edge_dst_value_input, EdgeValueInputWrapper edge_value_input, EdgeOp e_op, bool do_expensive_check = false)#

从当前顶点前沿遍历出边并提取所有边函数输出。

模板参数
  • GraphViewType – 传入的非拥有图对象的类型。

  • KeyBucketType – 抽象当前(标记)顶点前沿的键桶类的类型。

  • EdgeSrcValueInputWrapper – 边源属性值包装器的类型。

  • EdgeDstValueInputWrapper – 边目标属性值包装器的类型。

  • EdgeValueInputWrapper – 边属性值包装器的类型。

  • EdgeOp – 五元边操作符的类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 非拥有图对象。

  • frontier – 表示当前顶点前沿的 KeyBucketTyep 类对象。

  • edge_src_value_input – 用于访问源输入属性值(对于多 GPU 中分配给此进程的边源)的包装器。使用 cugraph::edge_src_property_t::view()(如果 e_op 需要访问源属性值)或 cugraph::edge_src_dummy_property_t::view()(如果 e_op 不访问源属性值)。使用 update_edge_src_property 填充此包装器。

  • edge_dst_value_input – 用于访问目标输入属性值(对于多 GPU 中分配给此进程的边目标)的包装器。使用 cugraph::edge_dst_property_t::view()(如果 e_op 需要访问目标属性值)或 cugraph::edge_dst_dummy_property_t::view()(如果 e_op 不访问目标属性值)。使用 update_edge_dst_property 填充此包装器。

  • edge_value_input – 用于访问边输入属性值(对于多 GPU 中分配给此进程的边)的包装器。使用 cugraph::edge_property_t::view()(如果 e_op 需要访问边属性值)或 cugraph::edge_dummy_property_t::view()(如果 e_op 不访问边属性值)。

  • e_op – 五元操作符,接受边(标记)源、边目的、源属性值、目的属性值以及边属性值,并返回一个要提取和累加的值。

  • do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)。

返回

存储已提取和累积的有效 e_op 返回值的 DataFrame 缓冲区对象。

template<typename GraphViewType, typename EdgeValueOutputWrapper, typename T>
void fill_edge_property(raft::handle_t const &handle, GraphViewType const &graph_view, EdgeValueOutputWrapper edge_property_output, T input, bool do_expensive_check = false)#

将图的边属性值填充为输入值。

模板参数
  • GraphViewType – 传入的非拥有图对象的类型。

  • EdgeValueOutputWrapper – 用于输出边属性值的包装器的类型。

  • T – 边属性值的类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 非拥有图对象。

  • edge_property_outputedge_property_view_t 类对象,用于存储边属性值(对于多 GPU 中分配给此进程的边)。

  • input – 边属性值将被设置为 input

  • do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)。

template<typename GraphViewType, typename EdgeSrcValueOutputWrapper, typename T>
void fill_edge_src_property(raft::handle_t const &handle, GraphViewType const &graph_view, EdgeSrcValueOutputWrapper edge_src_property_output, T input, bool do_expensive_check = false)#

将图的边源属性值填充为输入值。

此版本填充整个边源范围的图边源属性值(对于多 GPU 中分配给此进程的边源)。

模板参数
  • GraphViewType – 传入的非拥有图对象的类型。

  • EdgeSrcValueOutputWrapper – 用于输出边源属性值的包装器的类型。

  • T – 边源属性值的类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 非拥有图对象。

  • edge_src_property_output – edge_src_property_view_t 类对象,用于存储源属性值(对于多 GPU 中分配给此进程的边源)。

  • input – 边源属性值将被设置为 input

  • do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)。

template<typename GraphViewType, typename VertexIterator, typename EdgeSrcValueOutputWrapper, typename T>
void fill_edge_src_property(raft::handle_t const &handle, GraphViewType const &graph_view, VertexIterator sorted_unique_vertex_first, VertexIterator sorted_unique_vertex_last, EdgeSrcValueOutputWrapper edge_src_property_output, T input, bool do_expensive_check = false)#

将图的边源属性值填充为输入值。

此版本仅填充图边源属性值的一个子集。[sorted_unique_vertex_first, sorted_unique_vertex_last) 指定要填充的顶点。

模板参数
  • GraphViewType – 传入的非拥有图对象的类型。

  • VertexIterator – 顶点标识符迭代器的类型。

  • EdgeSrcValueOutputWrapper – 用于输出边源属性值的包装器的类型。

  • T – 边源属性值的类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 非拥有图对象。

  • sorted_unique_vertex_first – 指向要填充值的第一个(包含)顶点的迭代器。v 在 [vertex_first, sorted_unique_vertex_last) 中的顶点应已排序且唯一(并应属于多 GPU 中分配给此进程的顶点分区),否则行为未定义。

  • sorted_unique_vertex_last – 指向要填充值的最后一个(不包含)顶点的迭代器。

  • edge_src_property_output – edge_src_property_view_t 类对象,用于存储源属性值(对于多 GPU 中分配给此进程的边源)。

  • input – 边源属性值将被设置为 input

  • do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)。

template<typename GraphViewType, typename EdgeDstValueOutputWrapper, typename T>
void fill_edge_dst_property(raft::handle_t const &handle, GraphViewType const &graph_view, EdgeDstValueOutputWrapper edge_dst_property_output, T input, bool do_expensive_check = false)#

将图的边目的属性值填充为输入值。

此版本填充整个边目的范围的图边目的属性值(对于多 GPU 中分配给此进程的边目的)。

模板参数
  • GraphViewType – 传入的非拥有图对象的类型。

  • EdgeDstValueOutputWrapper – 用于输出边目的属性值的包装器的类型。

  • T – 边目的属性值的类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 非拥有图对象。

  • edge_dst_property_output – edge_dst_property_view_t 类对象,用于存储目的属性值(对于多 GPU 中分配给此进程的边目的)。

  • input – 边目的属性值将被设置为 input

  • do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)。

template<typename GraphViewType, typename VertexIterator, typename EdgeDstValueOutputWrapper, typename T>
void fill_edge_dst_property(raft::handle_t const &handle, GraphViewType const &graph_view, VertexIterator sorted_unique_vertex_first, VertexIterator sorted_unique_vertex_last, EdgeDstValueOutputWrapper edge_dst_property_output, T input, bool do_expensive_check = false)#

将图的边目的属性值填充为输入值。

此版本仅填充图边目的属性值的一个子集。[sorted_unique_vertex_first, sorted_unique_vertex_last) 指定要填充的顶点。

模板参数
  • GraphViewType – 传入的非拥有图对象的类型。

  • VertexIterator – 顶点标识符迭代器的类型。

  • EdgeDstValueOutputWrapper – 用于输出边目的属性值的包装器的类型。

  • T – 边目的属性值的类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 非拥有图对象。

  • sorted_unique_vertex_first – 指向要填充值的第一个(包含)顶点的迭代器。v 在 [sorted_unique_vertex_first, sorted_unique_vertex_last) 中的顶点应已排序且唯一(并应属于多 GPU 中分配给此进程的顶点分区),否则行为未定义。

  • sorted_unique_vertex_last – 指向要填充值的最后一个(不包含)顶点的迭代器。

  • edge_dst_property_output – edge_dst_property_view_t 类对象,用于存储目的属性值(对于多 GPU 中分配给此进程的边目的)。

  • input – 边目的属性值将被设置为 input

  • do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)。

template<typename GraphViewType, typename VertexPairIterator>
std::tuple<rmm::device_uvector<size_t>, rmm::device_uvector<typename GraphViewType::vertex_type>> per_v_pair_dst_nbr_intersection(raft::handle_t const &handle, GraphViewType const &graph_view, VertexPairIterator vertex_pair_first, VertexPairIterator vertex_pair_last, bool do_expensive_check = false)#

遍历每个输入的顶点对,并以类似 CSR 的格式返回公共目的邻居列表对。

遍历每个顶点对;计算该对中两个顶点目的邻居列表的交集,并将结果存储为类似 CSR 的格式

模板参数
  • GraphViewType – 传入的非拥有图对象的类型。

  • VertexPairIterator – 输入顶点对迭代器的类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 非拥有图对象。

  • vertex_pair_first – 指向第一个(包含)输入顶点对的迭代器。

  • vertex_pair_last – 指向最后一个(不包含)输入顶点对的迭代器。

  • do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)。

返回

std::tuple 交集偏移量和索引的元组。

template<typename GraphViewType, typename VertexPairIterator, typename VertexValueInputIterator, typename EdgeValueInputIterator, typename IntersectionOp, typename VertexPairValueOutputIterator>
void per_v_pair_transform_dst_nbr_intersection(raft::handle_t const &handle, GraphViewType const &graph_view, EdgeValueInputIterator edge_value_input, VertexPairIterator vertex_pair_first, VertexPairIterator vertex_pair_last, VertexValueInputIterator vertex_value_input_first, IntersectionOp intersection_op, VertexPairValueOutputIterator vertex_pair_value_output_first, bool do_expensive_check = false)#

遍历每个输入的顶点对,并对该对的公共目的邻居列表应用函数对象。

遍历每个顶点对;计算该对中两个顶点目的邻居列表的交集;调用用户提供的函数对象,并存储函数对象的输出。

模板参数
  • GraphViewType – 传入的非拥有图对象的类型。

  • VertexPairIterator – 输入顶点对迭代器的类型。

  • VertexValueInputIterator – 顶点属性值迭代器的类型。

  • EdgeValueInputIterator – 边属性值迭代器的类型。

  • IntersectionOp – 每交集五元操作符的类型。

  • VertexPairValueOutputIterator – 顶点对输出属性变量迭代器的类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 非拥有图对象。

  • vertex_pair_first – 指向第一个(包含)输入顶点对的迭代器。

  • vertex_pair_last – 指向最后一个(不包含)输入顶点对的迭代器。

  • vertex_src_value_input – 用于访问顶点输入属性值(对于多 GPU 中分配给此进程的顶点)的包装器。

  • edge_value_input – 用于访问边输入属性值(对于多 GPU 中分配给此进程的边)的包装器。使用 cugraph::edge_property_t::view()(如果 intersection_op 需要访问边属性值)或 cugraph::edge_dummy_property_t::view()(如果 intersection_op 不访问边属性值)。

  • intersection_op – 五元操作符,接受对中的第一个顶点、对中的第二个顶点、第一个顶点的属性值、第二个顶点的属性值以及第一个顶点和第二个顶点目的邻居交集中的顶点列表,并返回输入对的输出值。

  • vertex_pair_value_output_first – 指向第一个(包含)顶点对的顶点对属性变量的迭代器。vertex_pair_value_output_last(不包含)被推断为 vertex_pair_value_output_first + thrust::distance(vertex_pair_first, vertex_pair_last)

  • A – 用于对输入参数运行昂贵检查的标志(如果设置为 true)。

template<typename GraphViewType, typename KeyBucketType, typename EdgeSrcValueInputWrapper, typename EdgeDstValueInputWrapper, typename EdgeValueInputWrapper, typename EdgeOp, typename EdgeTypeInputWrapper, typename T>
std::tuple<std::optional<rmm::device_uvector<size_t>>, dataframe_buffer_type_t<T>> per_v_random_select_transform_outgoing_e(raft::handle_t const &handle, GraphViewType const &graph_view, KeyBucketType const &key_list, EdgeSrcValueInputWrapper edge_src_value_input, EdgeDstValueInputWrapper edge_dst_value_input, EdgeValueInputWrapper edge_value_input, EdgeOp e_op, raft::random::RngState &rng_state, size_t K, bool with_replacement, std::optional<T> invalid_value, bool do_expensive_check = false)#

随机选择并转换输入(标记)顶点的出边。

此函数假设给定顶点的每条出边被选中的概率相同(均匀邻居采样)。

模板参数
  • GraphViewType – 传入的非拥有图对象的类型。

  • KeyBucketType – 抽象当前(标记)顶点列表的键桶类的类型。

  • EdgeSrcValueInputWrapper – 边源属性值包装器的类型。

  • EdgeDstValueInputWrapper – 边目标属性值包装器的类型。

  • EdgeValueInputWrapper – 边属性值包装器的类型。

  • EdgeOp – 五元边操作符的类型。

  • T – 被选中和转换的边输出值的类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 非拥有图对象。

  • key_list – KeyBucketType 类对象,用于存储要采样出边的(标记)顶点列表。

  • edge_src_value_input – 用于访问源输入属性值(对于多 GPU 中分配给此进程的边源)的包装器。使用 cugraph::edge_src_property_t::view()(如果 e_op 需要访问源属性值)或 cugraph::edge_src_dummy_property_t::view()(如果 e_op 不访问源属性值)。使用 update_edge_src_property 填充此包装器。

  • edge_dst_value_input – 用于访问目标输入属性值(对于多 GPU 中分配给此进程的边目标)的包装器。使用 cugraph::edge_dst_property_t::view()(如果 e_op 需要访问目标属性值)或 cugraph::edge_dst_dummy_property_t::view()(如果 e_op 不访问目标属性值)。使用 update_edge_dst_property 填充此包装器。

  • edge_value_input – 用于访问边输入属性值(对于多 GPU 中分配给此进程的边)的包装器。使用 cugraph::edge_property_t::view()(如果 e_op 需要访问边属性值)或 cugraph::edge_dummy_property_t::view()(如果 e_op 不访问边属性值)。

  • e_op – 五元操作符,接受(标记)边源、边目的、源、目的和边的属性值,并返回一个要在输出中收集的值。此函数仅针对被选中的边调用。

  • K – 每个(标记)顶点要选择的出边数量。

  • with_replacement – 一个标志,用于指定单条出边是否可以多次被选中(如果 with_replacement = true)或只能被选中一次(如果 with_replacement = false)。

  • invalid_value – 如果 invalid_value.has_value() 为 true,此值用于填充零出度顶点(如果 with_replacement = true)或其出度小于 K 的顶点(如果 with_replacement = false)的输出向量。如果 invalid_value.has_value() 为 false,对于被选中的边少于 K 的顶点,返回的值可能少于 K 个。有关更多详细信息,请参见返回值部分。

  • do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)。

返回

std::tuple 可选偏移向量的元组,类型为 std::optional<rmm::device_uvector<size_t>>,以及一个数据帧缓冲区,存储从被选中的边获得的类型为 T 的输出值。如果 invalid_value 是 std::nullopt,则偏移向量有效且大小为 key_list.size() + 1。如果 invalid_value.has_value() 为 true,则返回 std::nullopt(数据帧缓冲区将存储 key_list.size() * K 个元素)。如果 invalid_value.has_value() 为 true,则为 key_list 中的每个键返回 K 个值。在 K_sum 个值中,有效值排在无效值之前;有效值的顺序可以是任意的。

template<typename GraphViewType, typename KeyBucketType, typename EdgeSrcValueInputWrapper, typename EdgeDstValueInputWrapper, typename EdgeValueInputWrapper, typename EdgeOp, typename EdgeTypeInputWrapper, typename T>
std::tuple<std::optional<rmm::device_uvector<size_t>>, dataframe_buffer_type_t<T>> per_v_random_select_transform_outgoing_e(raft::handle_t const &handle, GraphViewType const &graph_view, KeyBucketType const &key_list, EdgeSrcValueInputWrapper edge_src_value_input, EdgeDstValueInputWrapper edge_dst_value_input, EdgeValueInputWrapper edge_value_input, EdgeOp e_op, EdgeTypeInputWrapper edge_type_input, raft::random::RngState &rng_state, raft::host_span<size_t const> Ks, bool with_replacement, std::optional<T> invalid_value, bool do_expensive_check = false)#

随机选择(按类型)并转换输入(带标签的)顶点的出边。

此函数假设给定顶点的每条出边被选中的概率相同(均匀邻居采样)。

模板参数
  • GraphViewType – 传入的非拥有图对象的类型。

  • KeyBucketType – 抽象当前(标记)顶点列表的键桶类的类型。

  • EdgeSrcValueInputWrapper – 边源属性值包装器的类型。

  • EdgeDstValueInputWrapper – 边目标属性值包装器的类型。

  • EdgeValueInputWrapper – 边属性值包装器的类型。

  • EdgeOp – 五元边操作符的类型。

  • EdgeTypeInputWrapper – 用于边类型值的包装器类型。

  • T – 被选中和转换的边输出值的类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 非拥有图对象。

  • key_list – KeyBucketType 类对象,用于存储要采样出边的(标记)顶点列表。

  • edge_src_value_input – 用于访问源输入属性值(对于多 GPU 中分配给此进程的边源)的包装器。使用 cugraph::edge_src_property_t::view()(如果 e_op 需要访问源属性值)或 cugraph::edge_src_dummy_property_t::view()(如果 e_op 不访问源属性值)。使用 update_edge_src_property 填充此包装器。

  • edge_dst_value_input – 用于访问目标输入属性值(对于多 GPU 中分配给此进程的边目标)的包装器。使用 cugraph::edge_dst_property_t::view()(如果 e_op 需要访问目标属性值)或 cugraph::edge_dst_dummy_property_t::view()(如果 e_op 不访问目标属性值)。使用 update_edge_dst_property 填充此包装器。

  • edge_value_input – 用于访问边输入属性值(对于多 GPU 中分配给此进程的边)的包装器。使用 cugraph::edge_property_t::view()(如果 e_op 需要访问边属性值)或 cugraph::edge_dummy_property_t::view()(如果 e_op 不访问边属性值)。

  • e_op – 五元操作符,接受(标记)边源、边目的、源、目的和边的属性值,并返回一个要在输出中收集的值。此函数仅针对被选中的边调用。

  • edge_type_input – 用于访问边类型值(对于多 GPU 中分配给此进程的边)的包装器。此参数用于按类型(异构)采样。使用 cugraph::edge_property_t::view()。

  • Ks – 对于每种边类型,每个(带标签的)顶点选择的出边数量(大小 = 边类型数量)。

  • with_replacement – 一个标志,用于指定单条出边是否可以多次被选中(如果 with_replacement = true)或只能被选中一次(如果 with_replacement = false)。

  • invalid_value – 如果 invalid_value.has_value() 为 true,此值用于填充零出度顶点(如果 with_replacement = true)或其出度小于 K 的顶点(如果 with_replacement = false)的输出向量。如果 invalid_value.has_value() 为 false,对于被选中的边少于 K 的顶点,返回的值可能少于 K 个。有关更多详细信息,请参见返回值部分。

  • do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)。

返回

std::tuple 包含一个可选偏移向量(类型为 std::optional<rmm::device_uvector<size_t>>)和一个用于存储所选边输出值(类型为 T)的数据帧缓冲区的元组。如果 invalid_value 为 std::nullopt,则偏移向量有效,其大小为 key_list.size() + 1。如果 invalid_value.has_value() 为 true,则返回 std::nullopt(数据帧缓冲区将存储 key_list.size() * K 个元素)。如果 invalid_value.has_value() 为 true,则 `key_list` 中的每个键都会返回 K_sum = std::reduce(Ks.begin(), Ks.end()) 个值。在 K_sum 个值中,有效值排在无效值之前;有效值的顺序可以是任意的。

template<typename GraphViewType, typename KeyBucketType, typename BiasEdgeSrcValueInputWrapper, typename BiasEdgeDstValueInputWrapper, typename BiasEdgeValueInputWrapper, typename BiasEdgeOp, typename EdgeSrcValueInputWrapper, typename EdgeDstValueInputWrapper, typename EdgeValueInputWrapper, typename EdgeOp, typename T>
std::tuple<std::optional<rmm::device_uvector<size_t>>, dataframe_buffer_type_t<T>> per_v_random_select_transform_outgoing_e(raft::handle_t const &handle, GraphViewType const &graph_view, KeyBucketType const &key_list, BiasEdgeSrcValueInputWrapper bias_edge_src_value_input, BiasEdgeDstValueInputWrapper bias_edge_dst_value_input, BiasEdgeValueInputWrapper bias_edge_value_input, BiasEdgeOp bias_e_op, EdgeSrcValueInputWrapper edge_src_value_input, EdgeDstValueInputWrapper edge_dst_value_input, EdgeValueInputWrapper edge_value_input, EdgeOp e_op, raft::random::RngState &rng_state, size_t K, bool with_replacement, std::optional<T> invalid_value, bool do_expensive_check = false)#

随机选择并转换输入(带标签的)顶点的出边,并带有偏置。

模板参数
  • GraphViewType – 传入的非拥有图对象的类型。

  • KeyBucketType – 抽象当前(标记)顶点列表的键桶类的类型。

  • BiasEdgeSrcValueInputWrapper – 用于边源属性值(用于 BiasEdgeOp)的包装器类型。

  • BiasEdgeDstValueInputWrapper – 用于边目标属性值(用于 BiasEdgeOp)的包装器类型。

  • BiasEdgeValueInputWrapper – 用于边属性值(用于 BiasEdgeOp)的包装器类型。

  • BiasEdgeOp – 用于设置选择偏置值的五元边算子的类型。

  • EdgeSrcValueInputWrapper – 边源属性值包装器的类型。

  • EdgeDstValueInputWrapper – 边目标属性值包装器的类型。

  • EdgeValueInputWrapper – 边属性值包装器的类型。

  • EdgeOp – 五元边操作符的类型。

  • T – 被选中和转换的边输出值的类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 非拥有图对象。

  • key_list – KeyBucketType 类对象,用于存储要采样出边的(标记)顶点列表。

  • bias_edge_src_value_input – 用于访问源输入属性值(对于多 GPU 中分配给此进程的边源)的包装器。此参数用于将边源属性值传递给 bias_e_op。如果 e_op 需要访问源属性值,请使用 cugraph::edge_src_property_t::view();如果 e_op 不需要访问源属性值,请使用 cugraph::edge_src_dummy_property_t::view()。使用 update_edge_src_property 填充包装器。

  • bias_edge_dst_value_input – 用于访问目标输入属性值(对于多 GPU 中分配给此进程的边目标)的包装器。此参数用于将边目标属性值传递给 bias_e_op。如果 e_op 需要访问目标属性值,请使用 cugraph::edge_dst_property_t::view();如果 e_op 不需要访问目标属性值,请使用 cugraph::edge_dst_dummy_property_t::view()。使用 update_edge_dst_property 填充包装器。

  • bias_edge_value_input – 用于访问边输入属性值(对于多 GPU 中分配给此进程的边)的包装器。此参数用于将边属性值传递给 bias_e_op。如果 e_op 需要访问边属性值,请使用 cugraph::edge_property_t::view();如果 e_op 不需要访问边属性值,请使用 cugraph::edge_dummy_property_t::view()。

  • bias_e_op – 五元算子接受(带标签的)边源、边目标、源、目标和边的属性值,并返回一个浮点偏置值,用于偏置随机选择。返回值应为非负数。偏置值为 0 表示对应的边不能被选择。假设返回值类型为 bias_t,则任何种子顶点的偏置值之和不应超过 std::numeric_limits<bias_t>::max()。

  • edge_src_value_input – 用于访问源输入属性值(对于多 GPU 中分配给此进程的边源)的包装器。此参数用于将边源属性值传递给 e_op。如果 e_op 需要访问源属性值,请使用 cugraph::edge_src_property_t::view();如果 e_op 不需要访问源属性值,请使用 cugraph::edge_src_dummy_property_t::view()。使用 update_edge_src_property 填充包装器。

  • edge_dst_value_input – 用于访问目标输入属性值(对于多 GPU 中分配给此进程的边目标)的包装器。此参数用于将边目标属性值传递给 e_op。如果 e_op 需要访问目标属性值,请使用 cugraph::edge_dst_property_t::view();如果 e_op 不需要访问目标属性值,请使用 cugraph::edge_dst_dummy_property_t::view()。使用 update_edge_dst_property 填充包装器。

  • edge_value_input – 用于访问边输入属性值(对于多 GPU 中分配给此进程的边)的包装器。此参数用于将边属性值传递给 e_op。如果 e_op 需要访问边属性值,请使用 cugraph::edge_property_t::view();如果 e_op 不需要访问边属性值,请使用 cugraph::edge_dummy_property_t::view()。

  • e_op – 五元操作符,接受(标记)边源、边目的、源、目的和边的属性值,并返回一个要在输出中收集的值。此函数仅针对被选中的边调用。

  • K – 每个(标记)顶点要选择的出边数量。

  • with_replacement – 一个标志,用于指定单条出边是否可以多次被选中(如果 with_replacement = true)或只能被选中一次(如果 with_replacement = false)。

  • invalid_value – 如果 invalid_value.has_value() 为 true,此值用于填充零出度顶点(如果 with_replacement = true)或其出度小于 K 的顶点(如果 with_replacement = false)的输出向量。如果 invalid_value.has_value() 为 false,对于被选中的边少于 K 的顶点,返回的值可能少于 K 个。有关更多详细信息,请参见返回值部分。

  • do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)。

返回

std::tuple 可选偏移向量的元组,类型为 std::optional<rmm::device_uvector<size_t>>,以及一个数据帧缓冲区,存储从被选中的边获得的类型为 T 的输出值。如果 invalid_value 是 std::nullopt,则偏移向量有效且大小为 key_list.size() + 1。如果 invalid_value.has_value() 为 true,则返回 std::nullopt(数据帧缓冲区将存储 key_list.size() * K 个元素)。如果 invalid_value.has_value() 为 true,则为 key_list 中的每个键返回 K 个值。在 K_sum 个值中,有效值排在无效值之前;有效值的顺序可以是任意的。

template<typename GraphViewType, typename KeyBucketType, typename BiasEdgeSrcValueInputWrapper, typename BiasEdgeDstValueInputWrapper, typename BiasEdgeValueInputWrapper, typename BiasEdgeOp, typename EdgeSrcValueInputWrapper, typename EdgeDstValueInputWrapper, typename EdgeValueInputWrapper, typename EdgeOp, typename EdgeTypeInputWrapper, typename T>
std::tuple<std::optional<rmm::device_uvector<size_t>>, dataframe_buffer_type_t<T>> per_v_random_select_transform_outgoing_e(raft::handle_t const &handle, GraphViewType const &graph_view, KeyBucketType const &key_list, BiasEdgeSrcValueInputWrapper bias_edge_src_value_input, BiasEdgeDstValueInputWrapper bias_edge_dst_value_input, BiasEdgeValueInputWrapper bias_edge_value_input, BiasEdgeOp bias_e_op, EdgeSrcValueInputWrapper edge_src_value_input, EdgeDstValueInputWrapper edge_dst_value_input, EdgeValueInputWrapper edge_value_input, EdgeOp e_op, EdgeTypeInputWrapper edge_type_input, raft::random::RngState &rng_state, raft::host_span<size_t const> Ks, bool with_replacement, std::optional<T> invalid_value, bool do_expensive_check = false)#

随机选择(按边类型)并转换输入(带标签的)顶点的出边,并带有偏置。

模板参数
  • GraphViewType – 传入的非拥有图对象的类型。

  • KeyBucketType – 抽象当前(标记)顶点列表的键桶类的类型。

  • BiasEdgeSrcValueInputWrapper – 用于边源属性值(用于 BiasEdgeOp)的包装器类型。

  • BiasEdgeDstValueInputWrapper – 用于边目标属性值(用于 BiasEdgeOp)的包装器类型。

  • BiasEdgeValueInputWrapper – 用于边属性值(用于 BiasEdgeOp)的包装器类型。

  • BiasEdgeOp – 用于设置选择偏置值的五元边算子的类型。

  • EdgeSrcValueInputWrapper – 边源属性值包装器的类型。

  • EdgeDstValueInputWrapper – 边目标属性值包装器的类型。

  • EdgeValueInputWrapper – 边属性值包装器的类型。

  • EdgeOp – 五元边操作符的类型。

  • EdgeTypeInputWrapper – 用于边类型值的包装器类型。

  • T – 被选中和转换的边输出值的类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 非拥有图对象。

  • key_list – KeyBucketType 类对象,用于存储要采样出边的(标记)顶点列表。

  • bias_edge_src_value_input – 用于访问源输入属性值(对于多 GPU 中分配给此进程的边源)的包装器。此参数用于将边源属性值传递给 bias_e_op。如果 e_op 需要访问源属性值,请使用 cugraph::edge_src_property_t::view();如果 e_op 不需要访问源属性值,请使用 cugraph::edge_src_dummy_property_t::view()。使用 update_edge_src_property 填充包装器。

  • bias_edge_dst_value_input – 用于访问目标输入属性值(对于多 GPU 中分配给此进程的边目标)的包装器。此参数用于将边目标属性值传递给 bias_e_op。如果 e_op 需要访问目标属性值,请使用 cugraph::edge_dst_property_t::view();如果 e_op 不需要访问目标属性值,请使用 cugraph::edge_dst_dummy_property_t::view()。使用 update_edge_dst_property 填充包装器。

  • bias_edge_value_input – 用于访问边输入属性值(对于多 GPU 中分配给此进程的边)的包装器。此参数用于将边属性值传递给 bias_e_op。如果 e_op 需要访问边属性值,请使用 cugraph::edge_property_t::view();如果 e_op 不需要访问边属性值,请使用 cugraph::edge_dummy_property_t::view()。

  • bias_e_op – 五元算子接受(带标签的)边源、边目标、源、目标和边的属性值,并返回一个浮点偏置值,用于偏置随机选择。返回值应为非负数。偏置值为 0 表示对应的边不能被选择。假设返回值类型为 bias_t,则任何种子顶点的偏置值之和不应超过 std::numeric_limits<bias_t>::max()。

  • edge_src_value_input – 用于访问源输入属性值(对于多 GPU 中分配给此进程的边源)的包装器。此参数用于将边源属性值传递给 e_op。如果 e_op 需要访问源属性值,请使用 cugraph::edge_src_property_t::view();如果 e_op 不需要访问源属性值,请使用 cugraph::edge_src_dummy_property_t::view()。使用 update_edge_src_property 填充包装器。

  • edge_dst_value_input – 用于访问目标输入属性值(对于多 GPU 中分配给此进程的边目标)的包装器。此参数用于将边目标属性值传递给 e_op。如果 e_op 需要访问目标属性值,请使用 cugraph::edge_dst_property_t::view();如果 e_op 不需要访问目标属性值,请使用 cugraph::edge_dst_dummy_property_t::view()。使用 update_edge_dst_property 填充包装器。

  • edge_value_input – 用于访问边输入属性值(对于多 GPU 中分配给此进程的边)的包装器。此参数用于将边属性值传递给 e_op。如果 e_op 需要访问边属性值,请使用 cugraph::edge_property_t::view();如果 e_op 不需要访问边属性值,请使用 cugraph::edge_dummy_property_t::view()。

  • e_op – 五元操作符,接受(标记)边源、边目的、源、目的和边的属性值,并返回一个要在输出中收集的值。此函数仅针对被选中的边调用。

  • edge_type_input – 用于访问边类型值(对于多 GPU 中分配给此进程的边)的包装器。此参数用于按类型(异构)采样。使用 cugraph::edge_property_t::view()。

  • Ks – 对于每种边类型,每个(带标签的)顶点选择的出边数量(大小 = 边类型数量)。

  • with_replacement – 一个标志,用于指定单条出边是否可以多次被选中(如果 with_replacement = true)或只能被选中一次(如果 with_replacement = false)。

  • invalid_value – 如果 invalid_value.has_value() 为 true,此值用于填充零出度顶点(如果 with_replacement = true)或其出度小于 K 的顶点(如果 with_replacement = false)的输出向量。如果 invalid_value.has_value() 为 false,对于被选中的边少于 K 的顶点,返回的值可能少于 K 个。有关更多详细信息,请参见返回值部分。

  • do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)。

返回

std::tuple 包含一个可选偏移向量(类型为 std::optional<rmm::device_uvector<size_t>>)和一个用于存储所选边输出值(类型为 T)的数据帧缓冲区的元组。如果 invalid_value 为 std::nullopt,则偏移向量有效,其大小为 key_list.size() + 1。如果 invalid_value.has_value() 为 true,则返回 std::nullopt(数据帧缓冲区将存储 key_list.size() * K 个元素)。如果 invalid_value.has_value() 为 true,则 `key_list` 中的每个键都会返回 K_sum = std::reduce(Ks.begin(), Ks.end()) 个值。在 K_sum 个值中,有效值排在无效值之前;有效值的顺序可以是任意的。

template<typename GraphViewType, typename EdgeSrcValueInputWrapper, typename EdgeValueInputWrapper, typename EdgeDstKeyInputWrapper, typename KVStoreViewType, typename KeyAggregatedEdgeOp, typename ReduceOp, typename T, typename VertexValueOutputIterator>
void per_v_transform_reduce_dst_key_aggregated_outgoing_e(raft::handle_t const &handle, GraphViewType const &graph_view, EdgeSrcValueInputWrapper edge_src_value_input, EdgeValueInputWrapper edge_value_input, EdgeDstKeyInputWrapper edge_dst_key_input, KVStoreViewType kv_store_view, KeyAggregatedEdgeOp key_aggregated_e_op, T init, ReduceOp reduce_op, VertexValueOutputIterator vertex_value_output_first, bool do_expensive_check = false)#

迭代每个顶点的目标键聚合出边,以更新顶点属性值。

此函数借鉴了 thrust::transform_reduce()。与 per_v_transform_reduce_outgoing_e 不同,此函数首先按目标键聚合出边,以支持每个顶点的两级归约。

模板参数
  • GraphViewType – 传入的非拥有图对象的类型。

  • EdgeSrcValueInputWrapper – 边源属性值包装器的类型。

  • EdgeValueInputWrapper – 边属性值包装器的类型。

  • EdgeDstKeyInputWrapper – 用于边目标键值的包装器类型。

  • KVStoreViewType – (键,值) 存储的类型。键类型应与顶点类型一致。

  • KeyAggregatedEdgeOp – 五元键聚合边算子的类型。

  • ReduceOp – 二元归约算子的类型。

  • T – 每个顶点归约的初始值类型。

  • VertexValueOutputIterator – 顶点输出属性变量的迭代器类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 非拥有图对象。

  • edge_src_value_input – 用于访问源输入属性值(对于多 GPU 中分配给此进程的边源)的包装器。使用 cugraph::edge_src_property_t::view()(如果 e_op 需要访问源属性值)或 cugraph::edge_src_dummy_property_t::view()(如果 e_op 不访问源属性值)。使用 update_edge_src_property 填充此包装器。

  • edge_value_input – 用于访问边输入属性值(对于多 GPU 中分配给此进程的边)的包装器。使用 cugraph::edge_property_t::view()(如果 e_op 需要访问边属性值)或 cugraph::edge_dummy_property_t::view()(如果 e_op 不访问边属性值)。

  • edge_dst_key_input – 用于访问目标输入键值(对于多 GPU 中分配给此进程的边目标)的包装器。使用 cugraph::edge_dst_property_t::view()。使用 update_edge_dst_property 填充包装器。

  • kv_store_view – (键,值) 存储的视图对象(对于多 GPU 中分配给此进程的键)。`cugraph::detail::compute_gpu_id_from_ext_vertex_t` 用于将键映射到进程)。(键,值) 对可以由 transform_reduce_e_by_src_key() 或 transform_reduce_e_by_dst_key() 提供。

  • key_aggregated_e_op – 五元算子接受 1) 边源,2) 键,3) *(<code class="docutils literal notranslate"><span class="pre">edge_partition_src_value_input_first</span></code> + i),4) 输入 (键,值) 对中存储的对应键的值(由 <code class="docutils literal notranslate"><span class="pre">map_unique_key_first</span></code>,<code class="docutils literal notranslate"><span class="pre">map_unique_key_last</span></code>,和 <code class="docutils literal notranslate"><span class="pre">map_value_first</span></code> 提供,并在多 GPU 的所有进程上聚合),以及 5) 聚合的边值。

  • init – 用于与每个顶点的归约值进行归约的初始值。

  • reduce_op – 接受两个输入参数并将两个值归约成一个的二元算子。src/prims/reduce_op.cuh 中有预定义的归约算子。建议尽可能使用预定义的归约算子,因为当前(和未来)的图原语实现可能会检查 ReduceOp 是否是已知类型(或具有已知成员变量),以采用更优化的代码路径。有关编写自定义归约算子的说明,请参阅 reduce_op.cuh 文件中的文档。

  • vertex_value_output_first – 指向第一个(包含)顶点(多 GPU 中分配给此进程的顶点)的顶点属性变量的迭代器。vertex_value_output_last(不包含)由 vertex_value_output_first + graph_view.local_vertex_partition_range_size() 推导得出。

  • do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)。

template<typename GraphViewType, typename EdgeSrcValueInputWrapper, typename EdgeDstValueInputWrapper, typename EdgeValueInputWrapper, typename EdgeOp, typename ReduceOp, typename PredOp, typename T, typename VertexValueOutputIterator>
void per_v_transform_reduce_if_incoming_e(raft::handle_t const &handle, GraphViewType const &graph_view, EdgeSrcValueInputWrapper edge_src_value_input, EdgeDstValueInputWrapper edge_dst_value_input, EdgeValueInputWrapper edge_value_input, EdgeOp e_op, T init, ReduceOp reduce_op, PredOp pred_op, VertexValueOutputIterator vertex_value_output_first, bool do_expensive_check = false)#

迭代每个顶点的入边以更新顶点属性。

此函数借鉴了 thrust::transform_reduce。此外,此函数会排除应用谓词 pred_op 后返回 false 的边。

模板参数
  • GraphViewType – 传入的非拥有图对象的类型。

  • EdgeSrcValueInputWrapper – 边源属性值包装器的类型。

  • EdgeDstValueInputWrapper – 边目标属性值包装器的类型。

  • EdgeValueInputWrapper – 边属性值包装器的类型。

  • EdgeOp – 五元边操作符的类型。

  • ReduceOp – 二元归约算子的类型。

  • PredOp – 五元谓词操作符的类型。

  • T – 每个顶点归约的初始值类型。

  • VertexValueOutputIterator – 顶点输出属性变量的迭代器类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 非拥有图对象。

  • edge_src_value_input – 用于访问源输入属性值(对于多 GPU 中分配给此进程的边源)的包装器。使用 cugraph::edge_src_property_t::view()(如果 e_op 需要访问源属性值)或 cugraph::edge_src_dummy_property_t::view()(如果 e_op 不访问源属性值)。使用 update_edge_src_property 填充此包装器。

  • edge_dst_value_input – 用于访问目标输入属性值(对于多 GPU 中分配给此进程的边目标)的包装器。使用 cugraph::edge_dst_property_t::view()(如果 e_op 需要访问目标属性值)或 cugraph::edge_dst_dummy_property_t::view()(如果 e_op 不访问目标属性值)。使用 update_edge_dst_property 填充此包装器。

  • edge_value_input – 用于访问边输入属性值(对于多 GPU 中分配给此进程的边)的包装器。使用 cugraph::edge_property_t::view()(如果 e_op 需要访问边属性值)或 cugraph::edge_dummy_property_t::view()(如果 e_op 不访问边属性值)。

  • e_op – 五元算子接受边源、边目标、源、目标和边的属性值,并返回要归约的值。

  • init – 要添加到每个顶点 e_op 归约返回值中的初始值。如果 reduce_opcugraph::reduce_op::any,则除了入度为 0 的(带标签的)顶点外,初始值永远不会被选中。

  • reduce_op – 接受两个输入参数并将两个值归约成一个的二元算子。src/prims/reduce_op.cuh 中有预定义的归约算子。建议尽可能使用预定义的归约算子,因为当前(和未来)的图原语实现可能会检查 ReduceOp 是否是已知类型(或具有已知成员变量),以采用更优化的代码路径。有关编写自定义归约算子的说明,请参阅 reduce_op.cuh 文件中的文档。

  • pred_op – 五元算子接受边源、边目标、源、目标和边的属性值,并返回此边是否应包含(如果返回 true)或排除。

  • vertex_value_output_first – 指向第一个(包含)顶点(多 GPU 中分配给此进程的顶点)的顶点属性变量的迭代器。vertex_value_output_last(不包含)由 vertex_value_output_first + graph_view.local_vertex_partition_range_size() 推导得出。

  • do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)。

template<typename GraphViewType, typename KeyBucketType, typename EdgeSrcValueInputWrapper, typename EdgeDstValueInputWrapper, typename EdgeValueInputWrapper, typename EdgeOp, typename ReduceOp, typename PredOp, typename T, typename VertexValueOutputIterator>
void per_v_transform_reduce_if_incoming_e(raft::handle_t const &handle, GraphViewType const &graph_view, KeyBucketType const &key_list, EdgeSrcValueInputWrapper edge_src_value_input, EdgeDstValueInputWrapper edge_dst_value_input, EdgeValueInputWrapper edge_value_input, EdgeOp e_op, T init, ReduceOp reduce_op, PredOp pred_op, VertexValueOutputIterator vertex_value_output_first, bool do_expensive_check = false)#

对于输入(带标签的)顶点列表中的每个(带标签的)顶点,迭代入边以更新(带标签的)顶点属性。

此函数借鉴了 thrust::transform_reduce()。此外,此函数会排除应用谓词 pred_op 后返回 false 的边。

模板参数
  • GraphViewType – 传入的非拥有图对象的类型。

  • KeyBucketType – 抽象当前(标记)顶点列表的键桶类的类型。

  • EdgeSrcValueInputWrapper – 边源属性值包装器的类型。

  • EdgeDstValueInputWrapper – 边目标属性值包装器的类型。

  • EdgeValueInputWrapper – 边属性值包装器的类型。

  • EdgeOp – 五元边操作符的类型。

  • ReduceOp – 二元归约算子的类型。

  • PredOp – 五元谓词操作符的类型。

  • T – 每个顶点归约的初始值类型。

  • VertexValueOutputIterator – 顶点输出属性变量的迭代器类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 非拥有图对象。

  • key_list – 用于存储要更新(带标签的)顶点属性的(带标签的)顶点列表的 KeyBucketType 类对象。

  • edge_src_value_input – 用于访问源输入属性值(对于多 GPU 中分配给此进程的边源)的包装器。使用 cugraph::edge_src_property_t::view()(如果 e_op 需要访问源属性值)或 cugraph::edge_src_dummy_property_t::view()(如果 e_op 不访问源属性值)。使用 update_edge_src_property 填充此包装器。

  • edge_dst_value_input – 用于访问目标输入属性值(对于多 GPU 中分配给此进程的边目标)的包装器。使用 cugraph::edge_dst_property_t::view()(如果 e_op 需要访问目标属性值)或 cugraph::edge_dst_dummy_property_t::view()(如果 e_op 不访问目标属性值)。使用 update_edge_dst_property 填充此包装器。

  • edge_value_input – 用于访问边输入属性值(对于多 GPU 中分配给此进程的边)的包装器。使用 cugraph::edge_property_t::view()(如果 e_op 需要访问边属性值)或 cugraph::edge_dummy_property_t::view()(如果 e_op 不访问边属性值)。

  • e_op – 五元算子接受边源、边目标、源、目标和边的属性值,并返回要归约的值。

  • init – 要添加到每个顶点 e_op 归约返回值中的初始值。如果 reduce_opcugraph::reduce_op::any,则除了入度为 0 的(带标签的)顶点外,初始值永远不会被选中。

  • reduce_op – 接受两个输入参数并将两个值归约成一个的二元算子。src/prims/reduce_op.cuh 中有预定义的归约算子。建议尽可能使用预定义的归约算子,因为当前(和未来)的图原语实现可能会检查 ReduceOp 是否是已知类型(或具有已知成员变量),以采用更优化的代码路径。有关编写自定义归约算子的说明,请参阅 reduce_op.cuh 文件中的文档。

  • pred_op – 五元算子接受边源、边目标、源、目标和边的属性值,并返回此边是否应包含(如果返回 true)或排除。

  • vertex_value_output_first – 指向 key_list 中第一个(包含)的(带标签的)顶点的(带标签的)顶点属性变量的迭代器。vertex_value_output_last(不包含)由 vertex_value_output_first + key_list.size() 推导得出。

  • do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)。

template<typename GraphViewType, typename EdgeSrcValueInputWrapper, typename EdgeDstValueInputWrapper, typename EdgeValueInputWrapper, typename EdgeOp, typename ReduceOp, typename PredOp, typename T, typename VertexValueOutputIterator>
void per_v_transform_reduce_if_outgoing_e(raft::handle_t const &handle, GraphViewType const &graph_view, EdgeSrcValueInputWrapper edge_src_value_input, EdgeDstValueInputWrapper edge_dst_value_input, EdgeValueInputWrapper edge_value_input, EdgeOp e_op, T init, ReduceOp reduce_op, PredOp pred_op, VertexValueOutputIterator vertex_value_output_first, bool do_expensive_check = false)#

迭代每个顶点的出边以更新顶点属性。

此函数借鉴了 thrust::transform_reduce()。此外,此函数会排除应用谓词 pred_op 后返回 false 的边。

模板参数
  • GraphViewType – 传入的非拥有图对象的类型。

  • EdgeSrcValueInputWrapper – 边源属性值包装器的类型。

  • EdgeDstValueInputWrapper – 边目标属性值包装器的类型。

  • EdgeValueInputWrapper – 边属性值包装器的类型。

  • EdgeOp – 五元边操作符的类型。

  • ReduceOp – 二元归约算子的类型。

  • PredOp – 五元谓词操作符的类型。

  • T – 每个顶点归约的初始值类型。

  • VertexValueOutputIterator – 顶点输出属性变量的迭代器类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 非拥有图对象。

  • edge_src_value_input – 用于访问源输入属性值(对于多 GPU 中分配给此进程的边源)的包装器。使用 cugraph::edge_src_property_t::view()(如果 e_op 需要访问源属性值)或 cugraph::edge_src_dummy_property_t::view()(如果 e_op 不访问源属性值)。使用 update_edge_src_property 填充此包装器。

  • edge_dst_value_input – 用于访问目标输入属性值(对于多 GPU 中分配给此进程的边目标)的包装器。使用 cugraph::edge_dst_property_t::view()(如果 e_op 需要访问目标属性值)或 cugraph::edge_dst_dummy_property_t::view()(如果 e_op 不访问目标属性值)。使用 update_edge_dst_property 填充此包装器。

  • edge_value_input – 用于访问边输入属性值(对于多 GPU 中分配给此进程的边)的包装器。使用 cugraph::edge_property_t::view()(如果 e_op 需要访问边属性值)或 cugraph::edge_dummy_property_t::view()(如果 e_op 不访问边属性值)。

  • e_op – 五元算子接受边源、边目标、源、目标和边的属性值,并返回要归约的值。

  • init – 要添加到每个顶点 e_op 归约返回值中的初始值。如果 reduce_opcugraph::reduce_op::any,则除了入度为 0 的(带标签的)顶点外,初始值永远不会被选中。

  • reduce_op – 接受两个输入参数并将两个值归约成一个的二元算子。src/prims/reduce_op.cuh 中有预定义的归约算子。建议尽可能使用预定义的归约算子,因为当前(和未来)的图原语实现可能会检查 ReduceOp 是否是已知类型(或具有已知成员变量),以采用更优化的代码路径。有关编写自定义归约算子的说明,请参阅 reduce_op.cuh 文件中的文档。

  • pred_op – 五元算子接受边源、边目标、源、目标和边的属性值,并返回此边是否应包含(如果返回 true)或排除。

  • vertex_value_output_first – 指向第一个(包含)顶点(多 GPU 中分配给此进程的顶点)的顶点属性变量的迭代器。vertex_value_output_last(不包含)由 vertex_value_output_first + graph_view.local_vertex_partition_range_size() 推导得出。

  • do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)。

template<typename GraphViewType, typename KeyBucketType, typename EdgeSrcValueInputWrapper, typename EdgeDstValueInputWrapper, typename EdgeValueInputWrapper, typename EdgeOp, typename ReduceOp, typename PredOp, typename T, typename VertexValueOutputIterator>
void per_v_transform_reduce_if_outgoing_e(raft::handle_t const &handle, GraphViewType const &graph_view, KeyBucketType const &key_list, EdgeSrcValueInputWrapper edge_src_value_input, EdgeDstValueInputWrapper edge_dst_value_input, EdgeValueInputWrapper edge_value_input, EdgeOp e_op, T init, ReduceOp reduce_op, PredOp pred_op, VertexValueOutputIterator vertex_value_output_first, bool do_expensive_check = false)#

对于输入(带标签的)顶点列表中的每个(带标签的)顶点,迭代出边以更新(带标签的)顶点属性。

此函数借鉴了 thrust::transform_reduce()。此外,此函数会排除应用谓词 pred_op 后返回 false 的边。

模板参数
  • GraphViewType – 传入的非拥有图对象的类型。

  • KeyBucketType – 抽象当前(标记)顶点列表的键桶类的类型。

  • EdgeSrcValueInputWrapper – 边源属性值包装器的类型。

  • EdgeDstValueInputWrapper – 边目标属性值包装器的类型。

  • EdgeValueInputWrapper – 边属性值包装器的类型。

  • EdgeOp – 五元边操作符的类型。

  • ReduceOp – 二元归约算子的类型。

  • PredOp – 五元谓词操作符的类型。

  • T – 每个顶点归约的初始值类型。

  • VertexValueOutputIterator – 顶点输出属性变量的迭代器类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 非拥有图对象。

  • key_list – 用于存储要更新(带标签的)顶点属性的(带标签的)顶点列表的 KeyBucketType 类对象。

  • edge_src_value_input – 用于访问源输入属性值(对于多 GPU 中分配给此进程的边源)的包装器。使用 cugraph::edge_src_property_t::view()(如果 e_op 需要访问源属性值)或 cugraph::edge_src_dummy_property_t::view()(如果 e_op 不访问源属性值)。使用 update_edge_src_property 填充此包装器。

  • edge_dst_value_input – 用于访问目标输入属性值(对于多 GPU 中分配给此进程的边目标)的包装器。使用 cugraph::edge_dst_property_t::view()(如果 e_op 需要访问目标属性值)或 cugraph::edge_dst_dummy_property_t::view()(如果 e_op 不访问目标属性值)。使用 update_edge_dst_property 填充此包装器。

  • edge_value_input – 用于访问边输入属性值(对于多 GPU 中分配给此进程的边)的包装器。使用 cugraph::edge_property_t::view()(如果 e_op 需要访问边属性值)或 cugraph::edge_dummy_property_t::view()(如果 e_op 不访问边属性值)。

  • e_op – 五元算子接受边源、边目标、源、目标和边的属性值,并返回要归约的值。

  • init – 要添加到每个顶点 e_op 归约返回值中的初始值。如果 reduce_opcugraph::reduce_op::any,则除了出度为 0 的(带标签的)顶点外,初始值永远不会被选中。

  • reduce_op – 接受两个输入参数并将两个值归约成一个的二元算子。src/prims/reduce_op.cuh 中有预定义的归约算子。建议尽可能使用预定义的归约算子,因为当前(和未来)的图原语实现可能会检查 ReduceOp 是否是已知类型(或具有已知成员变量),以采用更优化的代码路径。有关编写自定义归约算子的说明,请参阅 reduce_op.cuh 文件中的文档。

  • pred_op – 五元算子接受边源、边目标、源、目标和边的属性值,并返回此边是否应包含(如果返回 true)或排除。

  • vertex_value_output_first – 指向 key_list 中第一个(包含)的(带标签的)顶点的(带标签的)顶点属性变量的迭代器。vertex_value_output_last(不包含)由 vertex_value_output_first + key_list.size() 推导得出。

  • do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)。

template<typename GraphViewType, typename EdgeSrcValueInputWrapper, typename EdgeDstValueInputWrapper, typename EdgeValueInputWrapper, typename EdgeOp, typename ReduceOp, typename T, typename VertexValueOutputIterator>
void per_v_transform_reduce_incoming_e(raft::handle_t const &handle, GraphViewType const &graph_view, EdgeSrcValueInputWrapper edge_src_value_input, EdgeDstValueInputWrapper edge_dst_value_input, EdgeValueInputWrapper edge_value_input, EdgeOp e_op, T init, ReduceOp reduce_op, VertexValueOutputIterator vertex_value_output_first, bool do_expensive_check = false)#

迭代每个顶点的入边以更新顶点属性。

此函数受 thrust::transform_reduce 的启发。

模板参数
  • GraphViewType – 传入的非拥有图对象的类型。

  • EdgeSrcValueInputWrapper – 边源属性值包装器的类型。

  • EdgeDstValueInputWrapper – 边目标属性值包装器的类型。

  • EdgeValueInputWrapper – 边属性值包装器的类型。

  • EdgeOp – 五元边操作符的类型。

  • ReduceOp – 二元归约算子的类型。

  • T – 每个顶点归约的初始值类型。

  • VertexValueOutputIterator – 顶点输出属性变量的迭代器类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 非拥有图对象。

  • edge_src_value_input – 用于访问源输入属性值(对于多 GPU 中分配给此进程的边源)的包装器。使用 cugraph::edge_src_property_t::view()(如果 e_op 需要访问源属性值)或 cugraph::edge_src_dummy_property_t::view()(如果 e_op 不访问源属性值)。使用 update_edge_src_property 填充此包装器。

  • edge_dst_value_input – 用于访问目标输入属性值(对于多 GPU 中分配给此进程的边目标)的包装器。使用 cugraph::edge_dst_property_t::view()(如果 e_op 需要访问目标属性值)或 cugraph::edge_dst_dummy_property_t::view()(如果 e_op 不访问目标属性值)。使用 update_edge_dst_property 填充此包装器。

  • edge_value_input – 用于访问边输入属性值(对于多 GPU 中分配给此进程的边)的包装器。使用 cugraph::edge_property_t::view()(如果 e_op 需要访问边属性值)或 cugraph::edge_dummy_property_t::view()(如果 e_op 不访问边属性值)。

  • e_op – 五元算子接受边源、边目标、源、目标和边的属性值,并返回要归约的值。

  • init – 要添加到每个顶点 e_op 归约返回值中的初始值。如果 reduce_opcugraph::reduce_op::any,则除了入度为 0 的(带标签的)顶点外,初始值永远不会被选中。

  • reduce_op – 接受两个输入参数并将两个值归约成一个的二元算子。src/prims/reduce_op.cuh 中有预定义的归约算子。建议尽可能使用预定义的归约算子,因为当前(和未来)的图原语实现可能会检查 ReduceOp 是否是已知类型(或具有已知成员变量),以采用更优化的代码路径。有关编写自定义归约算子的说明,请参阅 reduce_op.cuh 文件中的文档。

  • vertex_value_output_first – 指向第一个(包含)顶点(多 GPU 中分配给此进程的顶点)的顶点属性变量的迭代器。vertex_value_output_last(不包含)由 vertex_value_output_first + graph_view.local_vertex_partition_range_size() 推导得出。

  • do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)。

template<typename GraphViewType, typename KeyBucketType, typename EdgeSrcValueInputWrapper, typename EdgeDstValueInputWrapper, typename EdgeValueInputWrapper, typename EdgeOp, typename ReduceOp, typename T, typename VertexValueOutputIterator>
void per_v_transform_reduce_incoming_e(raft::handle_t const &handle, GraphViewType const &graph_view, KeyBucketType const &key_list, EdgeSrcValueInputWrapper edge_src_value_input, EdgeDstValueInputWrapper edge_dst_value_input, EdgeValueInputWrapper edge_value_input, EdgeOp e_op, T init, ReduceOp reduce_op, VertexValueOutputIterator vertex_value_output_first, bool do_expensive_check = false)#

对于输入(带标签的)顶点列表中的每个(带标签的)顶点,迭代入边以更新(带标签的)顶点属性。

此函数受 thrust::transform_reduce() 的启发。

模板参数
  • GraphViewType – 传入的非拥有图对象的类型。

  • KeyBucketType – 抽象当前(标记)顶点列表的键桶类的类型。

  • EdgeSrcValueInputWrapper – 边源属性值包装器的类型。

  • EdgeDstValueInputWrapper – 边目标属性值包装器的类型。

  • EdgeValueInputWrapper – 边属性值包装器的类型。

  • EdgeOp – 五元边操作符的类型。

  • ReduceOp – 二元归约算子的类型。

  • T – 每个顶点归约的初始值类型。

  • VertexValueOutputIterator – 顶点输出属性变量的迭代器类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 非拥有图对象。

  • key_list – 用于存储要更新(带标签的)顶点属性的(带标签的)顶点列表的 KeyBucketType 类对象。

  • edge_src_value_input – 用于访问源输入属性值(对于多 GPU 中分配给此进程的边源)的包装器。使用 cugraph::edge_src_property_t::view()(如果 e_op 需要访问源属性值)或 cugraph::edge_src_dummy_property_t::view()(如果 e_op 不访问源属性值)。使用 update_edge_src_property 填充此包装器。

  • edge_dst_value_input – 用于访问目标输入属性值(对于多 GPU 中分配给此进程的边目标)的包装器。使用 cugraph::edge_dst_property_t::view()(如果 e_op 需要访问目标属性值)或 cugraph::edge_dst_dummy_property_t::view()(如果 e_op 不访问目标属性值)。使用 update_edge_dst_property 填充此包装器。

  • edge_value_input – 用于访问边输入属性值(对于多 GPU 中分配给此进程的边)的包装器。使用 cugraph::edge_property_t::view()(如果 e_op 需要访问边属性值)或 cugraph::edge_dummy_property_t::view()(如果 e_op 不访问边属性值)。

  • e_op – 五元算子接受边源、边目标、源、目标和边的属性值,并返回要归约的值。

  • init – 要添加到每个顶点 e_op 归约返回值中的初始值。如果 reduce_opcugraph::reduce_op::any,则除了入度为 0 的(带标签的)顶点外,初始值永远不会被选中。

  • reduce_op – 接受两个输入参数并将两个值归约成一个的二元算子。src/prims/reduce_op.cuh 中有预定义的归约算子。建议尽可能使用预定义的归约算子,因为当前(和未来)的图原语实现可能会检查 ReduceOp 是否是已知类型(或具有已知成员变量),以采用更优化的代码路径。有关编写自定义归约算子的说明,请参阅 reduce_op.cuh 文件中的文档。

  • vertex_value_output_first – 指向 key_list 中第一个(包含)的(带标签的)顶点的(带标签的)顶点属性变量的迭代器。vertex_value_output_last(不包含)由 vertex_value_output_first + key_list.size() 推导得出。

  • do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)。

template<typename GraphViewType, typename EdgeSrcValueInputWrapper, typename EdgeDstValueInputWrapper, typename EdgeValueInputWrapper, typename EdgeOp, typename ReduceOp, typename T, typename VertexValueOutputIterator>
void per_v_transform_reduce_outgoing_e(raft::handle_t const &handle, GraphViewType const &graph_view, EdgeSrcValueInputWrapper edge_src_value_input, EdgeDstValueInputWrapper edge_dst_value_input, EdgeValueInputWrapper edge_value_input, EdgeOp e_op, T init, ReduceOp reduce_op, VertexValueOutputIterator vertex_value_output_first, bool do_expensive_check = false)#

迭代每个顶点的出边以更新顶点属性。

此函数受 thrust::transform_reduce() 的启发。

模板参数
  • GraphViewType – 传入的非拥有图对象的类型。

  • EdgeSrcValueInputWrapper – 边源属性值包装器的类型。

  • EdgeDstValueInputWrapper – 边目标属性值包装器的类型。

  • EdgeValueInputWrapper – 边属性值包装器的类型。

  • EdgeOp – 五元边操作符的类型。

  • ReduceOp – 二元归约算子的类型。

  • T – 每个顶点归约的初始值类型。

  • VertexValueOutputIterator – 顶点输出属性变量的迭代器类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 非拥有图对象。

  • edge_src_value_input – 用于访问源输入属性值(对于多 GPU 中分配给此进程的边源)的包装器。使用 cugraph::edge_src_property_t::view()(如果 e_op 需要访问源属性值)或 cugraph::edge_src_dummy_property_t::view()(如果 e_op 不访问源属性值)。使用 update_edge_src_property 填充此包装器。

  • edge_dst_value_input – 用于访问目标输入属性值(对于多 GPU 中分配给此进程的边目标)的包装器。使用 cugraph::edge_dst_property_t::view()(如果 e_op 需要访问目标属性值)或 cugraph::edge_dst_dummy_property_t::view()(如果 e_op 不访问目标属性值)。使用 update_edge_dst_property 填充此包装器。

  • edge_value_input – 用于访问边输入属性值(对于多 GPU 中分配给此进程的边)的包装器。使用 cugraph::edge_property_t::view()(如果 e_op 需要访问边属性值)或 cugraph::edge_dummy_property_t::view()(如果 e_op 不访问边属性值)。

  • e_op – 五元算子接受边源、边目标、源、目标和边的属性值,并返回要归约的值。

  • init – 要添加到每个顶点 e_op 归约返回值中的初始值。如果 reduce_opcugraph::reduce_op::any,则除了入度为 0 的(带标签的)顶点外,初始值永远不会被选中。

  • reduce_op – 接受两个输入参数并将两个值归约成一个的二元算子。src/prims/reduce_op.cuh 中有预定义的归约算子。建议尽可能使用预定义的归约算子,因为当前(和未来)的图原语实现可能会检查 ReduceOp 是否是已知类型(或具有已知成员变量),以采用更优化的代码路径。有关编写自定义归约算子的说明,请参阅 reduce_op.cuh 文件中的文档。

  • vertex_value_output_first – 指向第一个(包含)顶点(多 GPU 中分配给此进程的顶点)的顶点属性变量的迭代器。vertex_value_output_last(不包含)由 vertex_value_output_first + graph_view.local_vertex_partition_range_size() 推导得出。

  • do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)。

template<typename GraphViewType, typename KeyBucketType, typename EdgeSrcValueInputWrapper, typename EdgeDstValueInputWrapper, typename EdgeValueInputWrapper, typename EdgeOp, typename ReduceOp, typename T, typename VertexValueOutputIterator>
void per_v_transform_reduce_outgoing_e(raft::handle_t const &handle, GraphViewType const &graph_view, KeyBucketType const &key_list, EdgeSrcValueInputWrapper edge_src_value_input, EdgeDstValueInputWrapper edge_dst_value_input, EdgeValueInputWrapper edge_value_input, EdgeOp e_op, T init, ReduceOp reduce_op, VertexValueOutputIterator vertex_value_output_first, bool do_expensive_check = false)#

对于输入(带标签的)顶点列表中的每个(带标签的)顶点,迭代出边以更新(带标签的)顶点属性。

此函数受 thrust::transform_reduce() 的启发。

模板参数
  • GraphViewType – 传入的非拥有图对象的类型。

  • KeyBucketType – 抽象当前(标记)顶点列表的键桶类的类型。

  • EdgeSrcValueInputWrapper – 边源属性值包装器的类型。

  • EdgeDstValueInputWrapper – 边目标属性值包装器的类型。

  • EdgeValueInputWrapper – 边属性值包装器的类型。

  • EdgeOp – 五元边操作符的类型。

  • ReduceOp – 二元归约算子的类型。

  • T – 每个顶点归约的初始值类型。

  • VertexValueOutputIterator – 顶点输出属性变量的迭代器类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 非拥有图对象。

  • key_list – 用于存储要更新(带标签的)顶点属性的(带标签的)顶点列表的 KeyBucketType 类对象。

  • edge_src_value_input – 用于访问源输入属性值(对于多 GPU 中分配给此进程的边源)的包装器。使用 cugraph::edge_src_property_t::view()(如果 e_op 需要访问源属性值)或 cugraph::edge_src_dummy_property_t::view()(如果 e_op 不访问源属性值)。使用 update_edge_src_property 填充此包装器。

  • edge_dst_value_input – 用于访问目标输入属性值(对于多 GPU 中分配给此进程的边目标)的包装器。使用 cugraph::edge_dst_property_t::view()(如果 e_op 需要访问目标属性值)或 cugraph::edge_dst_dummy_property_t::view()(如果 e_op 不访问目标属性值)。使用 update_edge_dst_property 填充此包装器。

  • edge_value_input – 用于访问边输入属性值(对于多 GPU 中分配给此进程的边)的包装器。使用 cugraph::edge_property_t::view()(如果 e_op 需要访问边属性值)或 cugraph::edge_dummy_property_t::view()(如果 e_op 不访问边属性值)。

  • e_op – 五元算子接受边源、边目标、源、目标和边的属性值,并返回要归约的值。

  • init – 要添加到每个顶点 e_op 归约返回值中的初始值。如果 reduce_opcugraph::reduce_op::any,则除了出度为 0 的(带标签的)顶点外,初始值永远不会被选中。

  • reduce_op – 接受两个输入参数并将两个值归约成一个的二元算子。src/prims/reduce_op.cuh 中有预定义的归约算子。建议尽可能使用预定义的归约算子,因为当前(和未来)的图原语实现可能会检查 ReduceOp 是否是已知类型(或具有已知成员变量),以采用更优化的代码路径。有关编写自定义归约算子的说明,请参阅 reduce_op.cuh 文件中的文档。

  • vertex_value_output_first – 指向 key_list 中第一个(包含)的(带标签的)顶点的(带标签的)顶点属性变量的迭代器。vertex_value_output_last(不包含)由 vertex_value_output_first + key_list.size() 推导得出。

  • do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)。

template<typename T>
std::enable_if_t<is_thrust_tuple_of_arithmetic<T>::value, T> min_identity_element()#
template<typename T>
std::enable_if_t<std::is_arithmetic<T>::value, T> min_identity_element()#
template<typename T>
std::enable_if_t<is_thrust_tuple_of_arithmetic<T>::value, T> max_identity_element()#
template<typename T>
std::enable_if_t<std::is_arithmetic<T>::value, T> max_identity_element()#
template<typename GraphViewType, typename ReduceOp, typename VertexValueInputIterator, typename T>
T reduce_v(raft::handle_t const &handle, GraphViewType const &graph_view, VertexValueInputIterator vertex_value_input_first, T init, ReduceOp reduce_op, bool do_expensive_check = false)#

规约输入顶点属性值。

此函数受 thrust::reduce() 的启发。

模板参数
  • GraphViewType – 传入的非拥有图对象的类型。

  • ReduceOp – 二元归约算子的类型。

  • VertexValueInputIterator – 顶点属性值迭代器的类型。

  • T – 初始值的类型。T 应为算术类型或 thrust::tuple 算术类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 非拥有图对象。

  • vertex_value_input_first – 指向第一个(包含)顶点(在多 GPU 中分配给此进程)的顶点属性值的迭代器。vertex_value_input_last(不包含)推导为 vertex_value_input_first + graph_view.local_vertex_partition_range_size()

  • init – 与规约后的输入顶点属性值一起规约的初始值。

  • reduce_op – 接受两个输入参数并将两个值规约为一个值的二元运算符。在 include/cugraph/prims/reduce_op.cuh 中有预定义的规约运算符。建议尽可能使用预定义的规约运算符,因为图原语的当前(和未来)实现可能会检查 ReduceOp 是否为已知类型(或具有已知成员变量),以采用更优化的代码路径。有关编写自定义规约运算符的说明,请参阅 reduce_op.cuh 文件中的文档。

  • do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)。

返回

T 规约后的输入顶点属性值。

template<typename GraphViewType, typename VertexValueInputIterator, typename T>
T reduce_v(raft::handle_t const &handle, GraphViewType const &graph_view, VertexValueInputIterator vertex_value_input_first, T init, bool do_expensive_check = false)#

规约输入顶点属性值。

此函数受 thrust::reduce() 的启发。

模板参数
  • GraphViewType – 传入的非拥有图对象的类型。

  • ReduceOp – 二元归约算子的类型。

  • VertexValueInputIterator – 顶点属性值迭代器的类型。

  • T – 初始值的类型。T 应为算术类型或 thrust::tuple 算术类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 非拥有图对象。

  • vertex_value_input_first – 指向第一个(包含)顶点(在多 GPU 中分配给此进程)的顶点属性值的迭代器。vertex_value_input_last(不包含)推导为 vertex_value_input_first + graph_view.local_vertex_partition_range_size()

  • init – 要添加到规约后的输入顶点属性值的初始值。

  • do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)。

返回

T 规约后的输入顶点属性值。

template<typename GraphViewType, typename VertexValueInputIterator>
auto reduce_v(raft::handle_t const &handle, GraphViewType const &graph_view, VertexValueInputIterator vertex_value_input_first, bool do_expensive_check = false)#

规约输入顶点属性值。

此函数受 thrust::reduce() 的启发。

模板参数
  • GraphViewType – 传入的非拥有图对象的类型。

  • VertexValueInputIterator – 顶点属性值迭代器的类型。

  • T – 初始值的类型。T 应为算术类型或 thrust::tuple 算术类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 非拥有图对象。

  • vertex_value_input_first – 指向第一个(包含)顶点(在多 GPU 中分配给此进程)的顶点属性值的迭代器。vertex_value_input_last(不包含)推导为 vertex_value_input_first + graph_view.local_vertex_partition_range_size()

  • do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)。

返回

规约后的输入顶点属性值。

template<typename GraphViewType, typename EdgeSrcValueInputWrapper, typename EdgeDstValueInputWrapper, typename EdgeValueInputWrapper, typename EdgeOp, typename EdgeValueOutputWrapper>
void transform_e(raft::handle_t const &handle, GraphViewType const &graph_view, EdgeSrcValueInputWrapper edge_src_value_input, EdgeDstValueInputWrapper edge_dst_value_input, EdgeValueInputWrapper edge_value_input, EdgeOp e_op, EdgeValueOutputWrapper edge_value_output, bool do_expensive_check = false)#

遍历整个边集并更新边属性值。

此函数受 thrust::transform() 的启发。

模板参数
  • GraphViewType – 传入的非拥有图对象的类型。

  • EdgeSrcValueInputWrapper – 输入边源属性值的包装器类型。

  • EdgeDstValueInputWrapper – 输入边目标属性值的包装器类型。

  • EdgeValueInputWrapper – 输入边属性值的包装器类型。

  • EdgeOp – 五元边操作符的类型。

  • EdgeValueOutputWrapper – 用于输出边属性值的包装器的类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 非拥有图对象。

  • edge_src_value_input – 用于访问源输入属性值(对于多 GPU 中分配给此进程的边源)的包装器。使用 cugraph::edge_src_property_t::view()(如果 e_op 需要访问源属性值)或 cugraph::edge_src_dummy_property_t::view()(如果 e_op 不访问源属性值)。使用 update_edge_src_property 填充此包装器。

  • edge_dst_value_input – 用于访问目标输入属性值(对于多 GPU 中分配给此进程的边目标)的包装器。使用 cugraph::edge_dst_property_t::view()(如果 e_op 需要访问目标属性值)或 cugraph::edge_dst_dummy_property_t::view()(如果 e_op 不访问目标属性值)。使用 update_edge_dst_property 填充此包装器。

  • edge_value_input – 用于访问边输入属性值(对于多 GPU 中分配给此进程的边)的包装器。使用 cugraph::edge_property_t::view()(如果 e_op 需要访问边属性值)或 cugraph::edge_dummy_property_t::view()(如果 e_op 不访问边属性值)。

  • e_op – 五元算子接受边源、边目标、源、目标和边的属性值,并返回要归约的值。

  • edge_value_output – 用于存储边输出属性值的包装器(对于多 GPU 中分配给此进程的边)。使用 cugraph::edge_property_t::mutable_view()。

  • do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)。

template<typename GraphViewType, typename EdgeBucketType, typename EdgeSrcValueInputWrapper, typename EdgeDstValueInputWrapper, typename EdgeValueInputWrapper, typename EdgeOp, typename EdgeValueOutputWrapper>
void transform_e(raft::handle_t const &handle, GraphViewType const &graph_view, EdgeBucketType const &edge_list, EdgeSrcValueInputWrapper edge_src_value_input, EdgeDstValueInputWrapper edge_dst_value_input, EdgeValueInputWrapper edge_value_input, EdgeOp e_op, EdgeValueOutputWrapper edge_value_output, bool do_expensive_check = false)#

遍历输入边列表中的边并更新边属性值。

此函数受 thrust::transform() 的启发。

模板参数
  • GraphViewType – 传入的非拥有图对象的类型。

  • EdgeBucketType – 存储边列表的边桶类类型。

  • EdgeSrcValueInputWrapper – 输入边源属性值的包装器类型。

  • EdgeDstValueInputWrapper – 输入边目标属性值的包装器类型。

  • EdgeValueInputWrapper – 输入边属性值的包装器类型。

  • EdgeOp – 五元边操作符的类型。

  • EdgeValueOutputWrapper – 用于输出边属性值的包装器的类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 非拥有图对象。

  • edge_list – EdgeBucketType 类对象,存储要更新边属性值的边列表。

  • edge_src_value_input – 用于访问源输入属性值(对于多 GPU 中分配给此进程的边源)的包装器。使用 cugraph::edge_src_property_t::view()(如果 e_op 需要访问源属性值)或 cugraph::edge_src_dummy_property_t::view()(如果 e_op 不访问源属性值)。使用 update_edge_src_property 填充此包装器。

  • edge_dst_value_input – 用于访问目标输入属性值(对于多 GPU 中分配给此进程的边目标)的包装器。使用 cugraph::edge_dst_property_t::view()(如果 e_op 需要访问目标属性值)或 cugraph::edge_dst_dummy_property_t::view()(如果 e_op 不访问目标属性值)。使用 update_edge_dst_property 填充此包装器。

  • edge_value_input – 用于访问边输入属性值(对于多 GPU 中分配给此进程的边)的包装器。使用 cugraph::edge_property_t::view()(如果 e_op 需要访问边属性值)或 cugraph::edge_dummy_property_t::view()(如果 e_op 不访问边属性值)。

  • e_op – 五元算子接受边源、边目标、源、目标和边的属性值,并返回要归约的值。

  • edge_value_output – 用于存储边输出属性值的包装器(对于多 GPU 中分配给此进程的边)。使用 cugraph::edge_property_t::mutable_view()。

  • do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)。

template<typename GraphViewType, typename EdgeSrcValueInputWrapper, typename EdgeDstValueInputWrapper, typename IntersectionOp, typename T, typename VertexValueOutputIterator>
void transform_reduce_dst_nbr_intersection_of_e_endpoints_by_v(raft::handle_t const &handle, GraphViewType const &graph_view, EdgeSrcValueInputWrapper edge_src_value_input, EdgeDstValueInputWrapper edge_dst_value_input, IntersectionOp intersection_op, T init, VertexValueOutputIterator vertex_value_output_first, bool do_expensive_check = false)#

遍历每条边,对边端点的共同目标邻居列表应用一个函数对象,并按顶点规约函数对象的输出值。

遍历每条边;求源顶点和目标顶点的目标邻居列表的交集;为每次交集调用用户提供的函数对象,并按顶点规约函数对象的输出值(由三个值组成的 thrust::tuple,类型相同:一个用于源,一个用于目标,一个用于交集中的每个顶点)。我们未来可能会添加 transform_reduce_triplet_of_dst_nbr_intersection_of_e_endpoints_by_v 以允许为边端点交集中的不同顶点发出不同的值。此函数受 thrust::transform_reduce() 的启发。

模板参数
  • GraphViewType – 传入的非拥有图对象的类型。

  • EdgeSrcValueInputWrapper – 边源属性值包装器的类型。

  • EdgeDstValueInputWrapper – 边目标属性值包装器的类型。

  • IntersectionOp – 每交集五元操作符的类型。

  • T – 每个顶点归约的初始值类型。

  • VertexValueOutputIterator – 顶点输出属性变量的迭代器类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 非拥有图对象。

  • edge_src_value_input – 用于访问源输入属性值的包装器(对于多 GPU 中分配给此进程的边源)。使用 cugraph::edge_src_property_t::view()(如果 intersection_op 需要访问源属性值)或 cugraph::edge_src_dummy_property_t::view()(如果 intersection_op 不访问源属性值)。使用 update_edge_src_property 填充包装器。

  • edge_dst_value_input – 用于访问目标输入属性值的包装器(对于多 GPU 中分配给此进程的边目标)。使用 cugraph::edge_dst_property_t::view()(如果 intersection_op 需要访问目标属性值)或 cugraph::edge_dst_dummy_property_t::view()(如果 intersection_op 不访问目标属性值)。使用 update_edge_dst_property 填充包装器。

  • intersection_op – 五元运算符,接受边源、边目标、源的属性值、目标的属性值以及边源和目标顶点目标邻居交集中的顶点列表,并返回由三个值组成的 thrust::tuple:每个源顶点一个值,目标顶点一个值,交集中的每个顶点一个值。

  • init – 要添加到每个顶点的规约后 intersection_op 返回值的初始值。

  • vertex_value_output_first – 指向第一个(包含)顶点(多 GPU 中分配给此进程的顶点)的顶点属性变量的迭代器。vertex_value_output_last(不包含)由 vertex_value_output_first + graph_view.local_vertex_partition_range_size() 推导得出。

  • A – 用于对输入参数运行昂贵检查的标志(如果设置为 true)。

template<typename GraphViewType, typename EdgeSrcValueInputWrapper, typename EdgeDstValueInputWrapper, typename EdgeValueInputWrapper, typename EdgeOp, typename T>
T transform_reduce_e(raft::handle_t const &handle, GraphViewType const &graph_view, EdgeSrcValueInputWrapper edge_src_value_input, EdgeDstValueInputWrapper edge_dst_value_input, EdgeValueInputWrapper edge_value_input, EdgeOp e_op, T init, bool do_expensive_check = false)#

遍历整个边集并规约 edge_op 输出。

此函数受 thrust::transform_reduce() 的启发。

模板参数
  • GraphViewType – 传入的非拥有图对象的类型。

  • EdgeSrcValueInputWrapper – 边源属性值包装器的类型。

  • EdgeDstValueInputWrapper – 边目标属性值包装器的类型。

  • EdgeValueInputWrapper – 边属性值包装器的类型。

  • EdgeOp – 五元边操作符的类型。

  • T – 初始值的类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 非拥有图对象。

  • edge_src_value_input – 用于访问源输入属性值(对于多 GPU 中分配给此进程的边源)的包装器。使用 cugraph::edge_src_property_t::view()(如果 e_op 需要访问源属性值)或 cugraph::edge_src_dummy_property_t::view()(如果 e_op 不访问源属性值)。使用 update_edge_src_property 填充此包装器。

  • edge_dst_value_input – 用于访问目标输入属性值(对于多 GPU 中分配给此进程的边目标)的包装器。使用 cugraph::edge_dst_property_t::view()(如果 e_op 需要访问目标属性值)或 cugraph::edge_dst_dummy_property_t::view()(如果 e_op 不访问目标属性值)。使用 update_edge_dst_property 填充此包装器。

  • edge_value_input – 用于访问边输入属性值(对于多 GPU 中分配给此进程的边)的包装器。使用 cugraph::edge_property_t::view()(如果 e_op 需要访问边属性值)或 cugraph::edge_dummy_property_t::view()(如果 e_op 不访问边属性值)。

  • e_op – 五元算子接受边源、边目标、源、目标和边的属性值,并返回要归约的值。

  • init – 要添加到规约后 edge_op 输出的初始值。

  • do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)。

返回

T 转换规约后的 edge_op 输出。

template<typename GraphViewType, typename EdgeSrcValueInputWrapper, typename EdgeDstValueInputWrapper, typename EdgeValueInputWrapper, typename EdgeOp>
auto transform_reduce_e(raft::handle_t const &handle, GraphViewType const &graph_view, EdgeSrcValueInputWrapper edge_src_value_input, EdgeDstValueInputWrapper edge_dst_value_input, EdgeValueInputWrapper edge_value_input, EdgeOp e_op, bool do_expensive_check = false)#

遍历整个边集并规约 edge_op 输出。

此函数受 thrust::transform_reduce() 的启发。

模板参数
  • GraphViewType – 传入的非拥有图对象的类型。

  • EdgeSrcValueInputWrapper – 边源属性值包装器的类型。

  • EdgeDstValueInputWrapper – 边目标属性值包装器的类型。

  • EdgeValueInputWrapper – 边属性值包装器的类型。

  • EdgeOp – 五元边操作符的类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 非拥有图对象。

  • edge_src_value_input – 用于访问源输入属性值(对于多 GPU 中分配给此进程的边源)的包装器。使用 cugraph::edge_src_property_t::view()(如果 e_op 需要访问源属性值)或 cugraph::edge_src_dummy_property_t::view()(如果 e_op 不访问源属性值)。使用 update_edge_src_property 填充此包装器。

  • edge_dst_value_input – 用于访问目标输入属性值(对于多 GPU 中分配给此进程的边目标)的包装器。使用 cugraph::edge_dst_property_t::view()(如果 e_op 需要访问目标属性值)或 cugraph::edge_dst_dummy_property_t::view()(如果 e_op 不访问目标属性值)。使用 update_edge_dst_property 填充此包装器。

  • edge_value_input – 用于访问边输入属性值(对于多 GPU 中分配给此进程的边)的包装器。使用 cugraph::edge_property_t::view()(如果 e_op 需要访问边属性值)或 cugraph::edge_dummy_property_t::view()(如果 e_op 不访问边属性值)。

  • e_op – 五元算子接受边源、边目标、源、目标和边的属性值,并返回要归约的值。

  • do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)。

返回

转换规约后的 edge_op 输出。

template<typename GraphViewType, typename EdgeSrcValueInputWrapper, typename EdgeDstValueInputWrapper, typename EdgeValueInputWrapper, typename EdgeSrcKeyInputWrapper, typename EdgeOp, typename ReduceOp, typename T>
auto transform_reduce_e_by_src_key(raft::handle_t const &handle, GraphViewType const &graph_view, EdgeSrcValueInputWrapper edge_src_value_input, EdgeDstValueInputWrapper edge_dst_value_input, EdgeValueInputWrapper edge_value_input, EdgeSrcKeyInputWrapper edge_src_key_input, EdgeOp e_op, T init, ReduceOp reduce_op, bool do_expensive_check = false)#

遍历整个边集并规约 edge_op 输出为(键,值)对。

此函数受 thrust::transform_reduce() 和 thrust::reduce_by_key() 的启发。边的键由边源确定。

模板参数
  • GraphViewType – 传入的非拥有图对象的类型。

  • EdgeSrcValueInputWrapper – 边源属性值包装器的类型。

  • EdgeDstValueInputWrapper – 边目标属性值包装器的类型。

  • EdgeSrcKeyInputWrapper – 边源键值的包装器类型。

  • EdgeValueInputWrapper – 边属性值包装器的类型。

  • EdgeOp – 五元边操作符的类型。

  • T – (键,值)对中值的类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 非拥有图对象。

  • edge_src_value_input – 用于访问源输入属性值(对于多 GPU 中分配给此进程的边源)的包装器。使用 cugraph::edge_src_property_t::view()(如果 e_op 需要访问源属性值)或 cugraph::edge_src_dummy_property_t::view()(如果 e_op 不访问源属性值)。使用 update_edge_src_property 填充此包装器。

  • edge_dst_value_input – 用于访问目标输入属性值(对于多 GPU 中分配给此进程的边目标)的包装器。使用 cugraph::edge_dst_property_t::view()(如果 e_op 需要访问目标属性值)或 cugraph::edge_dst_dummy_property_t::view()(如果 e_op 不访问目标属性值)。使用 update_edge_dst_property 填充此包装器。

  • edge_src_key_input – 用于访问源输入键值的包装器(对于多 GPU 中分配给此进程的边源)。使用 cugraph::edge_src_property_t::view()。使用 update_edge_src_property 填充包装器。

  • edge_value_input – 用于访问边输入属性值(对于多 GPU 中分配给此进程的边)的包装器。使用 cugraph::edge_property_t::view()(如果 e_op 需要访问边属性值)或 cugraph::edge_dummy_property_t::view()(如果 e_op 不访问边属性值)。

  • e_op – 五元运算符,接受边源、边目标、源的属性值、目标的属性值以及边,并返回要规约到(源键,值)对中的值。

  • init – 要添加到每个转换规约后的(源键,值)对中的值的初始值。

  • reduce_op – 接受两个输入参数并将两个值归约成一个的二元算子。src/prims/reduce_op.cuh 中有预定义的归约算子。建议尽可能使用预定义的归约算子,因为当前(和未来)的图原语实现可能会检查 ReduceOp 是否是已知类型(或具有已知成员变量),以采用更优化的代码路径。有关编写自定义归约算子的说明,请参阅 reduce_op.cuh 文件中的文档。

  • do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)。

返回

std::tuple rmm::device_uvector<typename GraphView::vertex_type> 和 rmm::device_uvector<T> 的元组(如果 T 是算术标量)或 rmm::device_uvector 对象的元组(如果 T 是算术标量类型的 thrust::tuple 类型,每个标量类型对应一个 rmm::device_uvector 对象)。

template<typename GraphViewType, typename EdgeSrcValueInputWrapper, typename EdgeDstValueInputWrapper, typename EdgeValueInputWrapper, typename EdgeDstKeyInputWrapper, typename EdgeOp, typename ReduceOp, typename T>
auto transform_reduce_e_by_dst_key(raft::handle_t const &handle, GraphViewType const &graph_view, EdgeSrcValueInputWrapper edge_src_value_input, EdgeDstValueInputWrapper edge_dst_value_input, EdgeValueInputWrapper edge_value_input, EdgeDstKeyInputWrapper edge_dst_key_input, EdgeOp e_op, T init, ReduceOp reduce_op, bool do_expensive_check = false)#

遍历整个边集并规约 edge_op 输出为(键,值)对。

此函数受 thrust::transform_reduce() 和 thrust::reduce_by_key() 的启发。边的键由边目标确定。

模板参数
  • GraphViewType – 传入的非拥有图对象的类型。

  • EdgeSrcValueInputWrapper – 边源属性值包装器的类型。

  • EdgeDstValueInputWrapper – 边目标属性值包装器的类型。

  • EdgeDstKeyInputWrapper – 用于边目标键值的包装器类型。

  • EdgeValueInputWrapper – 边属性值包装器的类型。

  • EdgeOp – 五元边操作符的类型。

  • T – (键,值)对中值的类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 非拥有图对象。

  • edge_src_value_input – 用于访问源输入属性值(对于多 GPU 中分配给此进程的边源)的包装器。使用 cugraph::edge_src_property_t::view()(如果 e_op 需要访问源属性值)或 cugraph::edge_src_dummy_property_t::view()(如果 e_op 不访问源属性值)。使用 update_edge_src_property 填充此包装器。

  • edge_dst_value_input – 用于访问目标输入属性值(对于多 GPU 中分配给此进程的边目标)的包装器。使用 cugraph::edge_dst_property_t::view()(如果 e_op 需要访问目标属性值)或 cugraph::edge_dst_dummy_property_t::view()(如果 e_op 不访问目标属性值)。使用 update_edge_dst_property 填充此包装器。

  • edge_partition_dst_key_input – 用于访问目标输入键值的包装器(对于多 GPU 中分配给此进程的边目标)。使用 cugraph::edge_dst_property_t::view()。使用 update_edge_dst_property 填充包装器。

  • edge_value_input – 用于访问边输入属性值(对于多 GPU 中分配给此进程的边)的包装器。使用 cugraph::edge_property_t::view()(如果 e_op 需要访问边属性值)或 cugraph::edge_dummy_property_t::view()(如果 e_op 不访问边属性值)。

  • e_op – 五元运算符,接受边源、边目标、源的属性值、目标的属性值以及边,并返回要规约到(目标键,值)对中的值。

  • init – 要添加到每个转换规约后的(目标键,值)对中的值的初始值。

  • reduce_op – 接受两个输入参数并将两个值归约成一个的二元算子。src/prims/reduce_op.cuh 中有预定义的归约算子。建议尽可能使用预定义的归约算子,因为当前(和未来)的图原语实现可能会检查 ReduceOp 是否是已知类型(或具有已知成员变量),以采用更优化的代码路径。有关编写自定义归约算子的说明,请参阅 reduce_op.cuh 文件中的文档。

  • do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)。

返回

std::tuple rmm::device_uvector<typename GraphView::vertex_type> 和 rmm::device_uvector<T> 的元组(如果 T 是算术标量)或 rmm::device_uvector 对象的元组(如果 T 是算术标量类型的 thrust::tuple 类型,每个标量类型对应一个 rmm::device_uvector 对象)。

template<typename GraphViewType, typename KeyBucketType>
size_t compute_num_out_nbrs_from_frontier(raft::handle_t const &handle, GraphViewType const &graph_view, KeyBucketType const &frontier)#
template<typename GraphViewType, typename KeyBucketType, typename EdgeSrcValueInputWrapper, typename EdgeDstValueInputWrapper, typename EdgeValueInputWrapper, typename EdgeOp, typename ReduceOp, typename PredOp>
std::conditional_t<!std::is_same_v<typename ReduceOp::value_type, void>, std::tuple<dataframe_buffer_type_t<typename KeyBucketType::key_type>, detail::optional_dataframe_buffer_type_t<typename ReduceOp::value_type>>, dataframe_buffer_type_t<typename KeyBucketType::key_type>> transform_reduce_if_v_frontier_outgoing_e_by_dst(raft::handle_t const &handle, GraphViewType const &graph_view, KeyBucketType const &frontier, EdgeSrcValueInputWrapper edge_src_value_input, EdgeDstValueInputWrapper edge_dst_value_input, EdgeValueInputWrapper edge_value_input, EdgeOp e_op, ReduceOp reduce_op, PredOp pred_op, bool do_expensive_check = false)#

遍历当前顶点前沿的传出边,并按(标记的)目标 ID 归约有效的边函子输出。

如果谓词操作符返回 true,则评估边函子输出。如果 KeyBucketType::key_type 是由顶点类型和标记类型的元组组成,则假定顶点已标记(否则 KeyBucketType::key_type 与顶点类型相同)。

模板参数
  • GraphViewType – 传入的非拥有图对象的类型。

  • KeyBucketType – 抽象当前(标记的)顶点前沿的顶点前沿桶类类型。

  • EdgeSrcValueInputWrapper – 边源属性值包装器的类型。

  • EdgeDstValueInputWrapper – 边目标属性值包装器的类型。

  • EdgeValueInputWrapper – 边属性值包装器的类型。

  • EdgeOp – 五元边操作符的类型。

  • ReduceOp – 二元归约算子的类型。

  • PredOp – 五元谓词操作符的类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 非拥有图对象。

  • frontier – 当前顶点前沿的 KeyBucketType 类对象。

  • edge_src_value_input – 用于访问源输入属性值(对于多 GPU 中分配给此进程的边源)的包装器。使用 cugraph::edge_src_property_t::view()(如果 e_op 需要访问源属性值)或 cugraph::edge_src_dummy_property_t::view()(如果 e_op 不访问源属性值)。使用 update_edge_src_property 填充此包装器。

  • edge_dst_value_input – 用于访问目标输入属性值(对于多 GPU 中分配给此进程的边目标)的包装器。使用 cugraph::edge_dst_property_t::view()(如果 e_op 需要访问目标属性值)或 cugraph::edge_dst_dummy_property_t::view()(如果 e_op 不访问目标属性值)。使用 update_edge_dst_property 填充此包装器。

  • edge_value_input – 用于访问边输入属性值(对于多 GPU 中分配给此进程的边)的包装器。使用 cugraph::edge_property_t::view()(如果 e_op 需要访问边属性值)或 cugraph::edge_dummy_property_t::view()(如果 e_op 不访问边属性值)。

  • e_op – 五元操作符,接受边(标记的)源、边目标、源、目标和边的属性值,并 1) 仅返回(返回值 = void,如果顶点未标记且 ReduceOp::value_type 为 void,在这种情况下,e_op 是虚拟的,不会被调用);2) 返回要归约的值(如果顶点未标记且 ReduceOp::value_type 不为 void);3) 返回一个标记(如果顶点已标记且 ReduceOp::value_type 为 void);或 4) 返回一个由标记和要归约的值组成的元组(如果顶点已标记且 ReduceOp::value_type 不为 void)。

  • reduce_op – 二元操作符,接受两个输入参数并将两个值归约成一个。prims/reduce_op.cuh 中有预定义的归约操作符。建议尽可能使用预定义的归约操作符,因为当前(和未来)的图原语实现可能会检查 ReduceOp 是否为已知类型(或具有已知成员变量),以便采用更优化的代码路径。有关编写自定义归约操作符的说明,请参阅 reduce_op.cuh 文件中的文档。

  • pred_op – 五元谓词操作符,接受边(标记的)源、边目标、源、目标和边的属性值,并返回是否应该包含(如果返回 true)或排除此边。

返回

键值和有效载荷值(如果 ReduceOp::value_type 不为 void)的元组,或者仅键值(如果 ReduceOp::value_type 为 void)。返回值中的键按升序排序,其中顶点 ID 是主键,标记(如果相关)是次键。

template<typename GraphViewType, typename ReduceOp, typename VertexValueInputIterator, typename VertexOp, typename T>
T transform_reduce_v(raft::handle_t const &handle, GraphViewType const &graph_view, VertexValueInputIterator vertex_value_input_first, VertexOp v_op, T init, ReduceOp reduce_op, bool do_expensive_check = false)#

归约变换后的输入顶点属性值。

此函数受 thrust::transform_reduce() 的启发。

模板参数
  • GraphViewType – 传入的非拥有图对象的类型。

  • ReduceOp – 二元归约算子的类型。

  • VertexValueInputIterator – 顶点属性值迭代器的类型。

  • VertexOp – 一元顶点操作符的类型。

  • T – 初始值的类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 非拥有图对象。

  • vertex_value_input_first – 指向第一个(包含)顶点(在多 GPU 中分配给此进程)的顶点属性值的迭代器。vertex_value_input_last(不包含)推导为 vertex_value_input_first + graph_view.local_vertex_partition_range_size()

  • v_op – 二元操作符,接受顶点 ID 和 *(vertex_value_input_first + i)(其中 i 在 [0, graph_view.local_vertex_partition_range_size()] 范围内),并返回要归约的变换值。

  • init – 用于与变换归约后的输入顶点属性值一起归约的初始值。

  • reduce_op – 接受两个输入参数并将两个值规约为一个值的二元运算符。在 include/cugraph/prims/reduce_op.cuh 中有预定义的规约运算符。建议尽可能使用预定义的规约运算符,因为图原语的当前(和未来)实现可能会检查 ReduceOp 是否为已知类型(或具有已知成员变量),以采用更优化的代码路径。有关编写自定义规约运算符的说明,请参阅 reduce_op.cuh 文件中的文档。

  • do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)。

返回

T 变换并归约后的输入顶点属性值。

template<typename GraphViewType, typename VertexValueInputIterator, typename VertexOp, typename T>
T transform_reduce_v(raft::handle_t const &handle, GraphViewType const &graph_view, VertexValueInputIterator vertex_value_input_first, VertexOp v_op, T init, bool do_expensive_check = false)#

归约变换后的输入顶点属性值。

此函数受 thrust::transform_reduce() 的启发。

模板参数
  • GraphViewType – 传入的非拥有图对象的类型。

  • VertexValueInputIterator – 顶点属性值迭代器的类型。

  • VertexOp – 一元顶点操作符的类型。

  • T – 初始值的类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 非拥有图对象。

  • vertex_value_input_first – 指向第一个(包含)顶点(在多 GPU 中分配给此进程)的顶点属性值的迭代器。vertex_value_input_last(不包含)推导为 vertex_value_input_first + graph_view.local_vertex_partition_range_size()

  • v_op – 二元操作符,接受顶点 ID 和 *(vertex_value_input_first + i)(其中 i 在 [0, graph_view.local_vertex_partition_range_size()] 范围内),并返回要归约的变换值。

  • 要添加到变换归约后的输入顶点属性值的初始值。

  • do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)。

返回

T 变换并归约后的输入顶点属性值。

template<typename GraphViewType, typename VertexValueInputIterator, typename VertexOp>
auto transform_reduce_v(raft::handle_t const &handle, GraphViewType const &graph_view, VertexValueInputIterator vertex_value_input_first, VertexOp v_op, bool do_expensive_check = false)#

归约变换后的输入顶点属性值。

此函数受 thrust::transform_reduce() 的启发。

模板参数
  • GraphViewType – 传入的非拥有图对象的类型。

  • VertexValueInputIterator – 顶点属性值迭代器的类型。

  • VertexOp – 一元顶点操作符的类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 非拥有图对象。

  • vertex_value_input_first – 指向第一个(包含)顶点(在多 GPU 中分配给此进程)的顶点属性值的迭代器。vertex_value_input_last(不包含)推导为 vertex_value_input_first + graph_view.local_vertex_partition_range_size()

  • v_op – 二元操作符,接受顶点 ID 和 *(vertex_value_input_first + i)(其中 i 在 [0, graph_view.local_vertex_partition_range_size()] 范围内),并返回要归约的变换值。

  • do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)。

返回

变换并归约后的输入顶点属性值。

template<typename GraphViewType, typename KeyBucketType, typename EdgeSrcValueInputWrapper, typename EdgeDstValueInputWrapper, typename EdgeValueInputWrapper, typename EdgeOp, typename ReduceOp>
std::conditional_t<!std::is_same_v<typename ReduceOp::value_type, void>, std::tuple<dataframe_buffer_type_t<typename KeyBucketType::key_type>, detail::optional_dataframe_buffer_type_t<typename ReduceOp::value_type>>, dataframe_buffer_type_t<typename KeyBucketType::key_type>> transform_reduce_v_frontier_outgoing_e_by_dst(raft::handle_t const &handle, GraphViewType const &graph_view, KeyBucketType const &frontier, EdgeSrcValueInputWrapper edge_src_value_input, EdgeDstValueInputWrapper edge_dst_value_input, EdgeValueInputWrapper edge_value_input, EdgeOp e_op, ReduceOp reduce_op, bool do_expensive_check = false)#

遍历当前顶点前沿的传出边,并按(标记的)目标 ID 归约所有边函子输出。

如果 KeyBucketType::key_type 是由顶点类型和标记类型的元组组成,则假定顶点已标记(否则 KeyBucketType::key_type 与顶点类型相同)。

模板参数
  • GraphViewType – 传入的非拥有图对象的类型。

  • KeyBucketType – 抽象当前(标记的)顶点前沿的顶点前沿桶类类型。

  • EdgeSrcValueInputWrapper – 边源属性值包装器的类型。

  • EdgeDstValueInputWrapper – 边目标属性值包装器的类型。

  • EdgeValueInputWrapper – 边属性值包装器的类型。

  • EdgeOp – 五元边操作符的类型。

  • ReduceOp – 二元归约算子的类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 非拥有图对象。

  • frontier – 当前顶点前沿的 KeyBucketType 类对象。

  • edge_src_value_input – 用于访问源输入属性值(对于多 GPU 中分配给此进程的边源)的包装器。使用 cugraph::edge_src_property_t::view()(如果 e_op 需要访问源属性值)或 cugraph::edge_src_dummy_property_t::view()(如果 e_op 不访问源属性值)。使用 update_edge_src_property 填充此包装器。

  • edge_dst_value_input – 用于访问目标输入属性值(对于多 GPU 中分配给此进程的边目标)的包装器。使用 cugraph::edge_dst_property_t::view()(如果 e_op 需要访问目标属性值)或 cugraph::edge_dst_dummy_property_t::view()(如果 e_op 不访问目标属性值)。使用 update_edge_dst_property 填充此包装器。

  • edge_value_input – 用于访问边输入属性值(对于多 GPU 中分配给此进程的边)的包装器。使用 cugraph::edge_property_t::view()(如果 e_op 需要访问边属性值)或 cugraph::edge_dummy_property_t::view()(如果 e_op 不访问边属性值)。

  • e_op – 五元操作符,接受边(标记的)源、边目标、源、目标和边的属性值,并 1) 仅返回(返回值 = void,如果顶点未标记且 ReduceOp::value_type 为 void,在这种情况下,e_op 是虚拟的,不会被调用);2) 返回要归约的值(如果顶点未标记且 ReduceOp::value_type 不为 void);3) 返回一个标记(如果顶点已标记且 ReduceOp::value_type 为 void);或 4) 返回一个由标记和要归约的值组成的元组(如果顶点已标记且 ReduceOp::value_type 不为 void)。

  • reduce_op – 二元操作符,接受两个输入参数并将两个值归约成一个。prims/reduce_op.cuh 中有预定义的归约操作符。建议尽可能使用预定义的归约操作符,因为当前(和未来)的图原语实现可能会检查 ReduceOp 是否为已知类型(或具有已知成员变量),以便采用更优化的代码路径。有关编写自定义归约操作符的说明,请参阅 reduce_op.cuh 文件中的文档。

返回

键值和有效载荷值(如果 ReduceOp::value_type 不为 void)的元组,或者仅键值(如果 ReduceOp::value_type 为 void)。返回值中的键按升序排序,其中顶点 ID 是主键,标记(如果相关)是次键。

template<typename GraphViewType, typename VertexPropertyInputIterator, typename EdgeSrcValueOutputWrapper>
void update_edge_src_property(raft::handle_t const &handle, GraphViewType const &graph_view, VertexPropertyInputIterator vertex_property_input_first, EdgeSrcValueOutputWrapper edge_src_property_output, bool do_expensive_check = false)#

从输入顶点属性值更新图边源属性值。

此版本更新整个边源范围(在多 GPU 中分配给此进程)的图边源属性值。

模板参数
  • GraphViewType – 传入的非拥有图对象的类型。

  • VertexPropertyInputIterator – 顶点属性值迭代器的类型。

  • EdgeSrcValueOutputWrapper – 用于输出边源属性值的包装器的类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 非拥有图对象。

  • vertex_property_input_first – 指向第一个(包含)顶点(在多 GPU 中分配给此进程的顶点分区)的顶点属性值的迭代器。vertex_property_input_last(不包含)推导为 vertex_property_input_first + graph_view.local_vertex_partition_range_size()

  • edge_partition_src_property_output – edge_src_property_view_t 类对象,用于存储源属性值(在多 GPU 中分配给此进程的边源)。

  • do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)。

template<typename GraphViewType, typename VertexIterator, typename VertexPropertyInputIterator, typename EdgeSrcValueOutputWrapper>
void update_edge_src_property(raft::handle_t const &handle, GraphViewType const &graph_view, VertexIterator sorted_unique_vertex_first, VertexIterator sorted_unique_vertex_last, VertexPropertyInputIterator vertex_property_input_first, EdgeSrcValueOutputWrapper edge_src_property_output, bool do_expensive_check = false)#

从输入顶点属性值更新图边源属性值。

此版本仅更新图边源属性值的一个子集。 [sorted_unique_vertex_first, sorted_unique_vertex_last) 指定了具有新属性值要更新的顶点。

模板参数
  • GraphViewType – 传入的非拥有图对象的类型。

  • VertexIterator – 顶点标识符迭代器的类型。

  • VertexPropertyInputIterator – 顶点属性值迭代器的类型。

  • EdgeSrcValueOutputWrapper – 用于输出边源属性值的包装器的类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 非拥有图对象。

  • sorted_unique_vertex_first – 指向具有新值要更新的第一个(包含)顶点的迭代器。v 在 [sorted_unique_vertex_first, sorted_unique_vertex_last) 范围内应已排序且唯一(并且应属于多 GPU 中分配给此进程的顶点分区),否则行为未定义。

  • sorted_unique_vertex_last – 指向具有新值的最后一个(不包含)顶点的迭代器。

  • vertex_property_input_first – 指向第一个(包含)顶点(在多 GPU 中分配给此进程的顶点分区)的顶点属性值的迭代器。vertex_property_input_last(不包含)推导为 vertex_property_input_first + graph_view.local_vertex_partition_range_size()

  • edge_partition_src_property_output – edge_src_property_view_t 类对象,用于存储源属性值(在多 GPU 中分配给此进程的边源)。

  • do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)。

template<typename GraphViewType, typename VertexPropertyInputIterator, typename EdgeDstValueOutputWrapper>
void update_edge_dst_property(raft::handle_t const &handle, GraphViewType const &graph_view, VertexPropertyInputIterator vertex_property_input_first, EdgeDstValueOutputWrapper edge_dst_property_output, bool do_expensive_check = false)#

从输入顶点属性值更新图边目标属性值。

此版本更新整个边目标范围(在多 GPU 中分配给此进程)的图边目标属性值。

模板参数
  • GraphViewType – 传入的非拥有图对象的类型。

  • VertexPropertyInputIterator – 顶点属性值迭代器的类型。

  • EdgeDstValueOutputWrapper – 用于输出边目的属性值的包装器的类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 非拥有图对象。

  • vertex_property_input_first – 指向第一个(包含)顶点(在多 GPU 中分配给此进程的顶点分区)的顶点属性值的迭代器。vertex_property_input_last(不包含)推导为 vertex_property_input_first + graph_view.local_vertex_partition_range_size()

  • edge_partition_dst_property_output – edge_dst_property_view_t 类对象,用于存储目标属性值(在多 GPU 中分配给此进程的边目标)。

  • do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)。

template<typename GraphViewType, typename VertexIterator, typename VertexPropertyInputIterator, typename EdgeDstValueOutputWrapper>
void update_edge_dst_property(raft::handle_t const &handle, GraphViewType const &graph_view, VertexIterator sorted_unique_vertex_first, VertexIterator sorted_unique_vertex_last, VertexPropertyInputIterator vertex_property_input_first, EdgeDstValueOutputWrapper edge_dst_property_output, bool do_expensive_check = false)#

从输入顶点属性值更新图边目标属性值。

此版本仅更新图边目标属性值的一个子集。 [sorted_unique_vertex_first, sorted_unique_vertex_last) 指定了具有新属性值要更新的顶点。

模板参数
  • GraphViewType – 传入的非拥有图对象的类型。

  • VertexIterator – 顶点标识符迭代器的类型。

  • VertexPropertyInputIterator – 顶点属性值迭代器的类型。

  • EdgeDstValueOutputWrapper – 用于输出边目的属性值的包装器的类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 非拥有图对象。

  • sorted_unique_vertex_first – 指向具有新值要更新的第一个(包含)顶点的迭代器。v 在 [sorted_unique_vertex_first, sorted_unique_vertex_last) 范围内应已排序且唯一(并且应属于多 GPU 中分配给此进程的顶点分区),否则行为未定义。

  • sorted_unique_vertex_last – 指向具有新值的最后一个(不包含)顶点的迭代器。

  • vertex_property_input_first – 指向第一个(包含)顶点(在多 GPU 中分配给此进程的顶点分区)的顶点属性值的迭代器。vertex_property_input_last(不包含)推导为 vertex_property_input_first + graph_view.local_vertex_partition_range_size()

  • edge_partition_dst_property_output – edge_dst_property_view_t 类对象,用于存储目标属性值(在多 GPU 中分配给此进程的边目标)。

  • do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)。

template<typename GraphViewType, typename KeyBuffer, typename PayloadBuffer, typename VertexFrontierType, typename VertexValueInputIterator, typename VertexValueOutputIterator, typename VertexOp>
void update_v_frontier(raft::handle_t const &handle, GraphViewType const &graph_view, KeyBuffer &&key_buffer, PayloadBuffer &&payload_buffer, VertexFrontierType &frontier, raft::host_span<size_t const> next_frontier_bucket_indices, VertexValueInputIterator vertex_value_input_first, VertexValueOutputIterator vertex_value_output_first, VertexOp v_op, bool do_expensive_check = false)#

将(标记的)顶点插入到顶点前沿,并更新新插入顶点的顶点属性值。

这个基本操作通常与 transform_reduce_if_v_frontier_outgoing_e_by_dst 一起使用。此版本的 update_v_frontier 接受 payload_buffer,并且 @v_op 除了接受(标记的)顶点和顶点属性值作为输入参数外,还接受一个有效载荷值。

模板参数
  • GraphViewType – 传入的非拥有图对象的类型。

  • KeyBuffer – 存储(标记的)顶点的缓冲区类型。

  • PayloadBuffer – 存储有效载荷值的缓冲区类型。

  • VertexFrontierType – 抽象顶点前沿管理的顶点前沿类类型。

  • VertexValueInputIterator – 输入顶点属性值的迭代器类型。

  • VertexValueOutputIterator – 输出顶点属性变量的迭代器类型。

  • VertexOp – 三元顶点操作符的类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 非拥有图对象。

  • key_buffer – 存储要插入的(标记的)顶点的缓冲区对象。

  • payload_buffer – 存储 key_buffer 中每个(标记的)顶点的有效载荷值的缓冲区对象。

  • frontier – 用于顶点前沿管理的 VertexFrontierType 类对象。此对象包含多个桶对象。

  • next_frontier_bucket_indices – 存储新前沿(标记的)顶点的顶点前沿桶的索引。

  • vertex_value_input_first – 指向第一个(包含)顶点(在多 GPU 中分配给此进程)的顶点属性值的迭代器。vertex_value_input_last(不包含)推导为 vertex_value_input_first + graph_view.local_vertex_partition_range_size()

  • vertex_value_output_first – 指向第一个(包含)顶点(多 GPU 中分配给此进程的顶点)的顶点属性变量的迭代器。vertex_value_output_last(不包含)由 vertex_value_output_first + graph_view.local_vertex_partition_range_size() 推导得出。

  • v_op – 三元操作符,接受(标记的)顶点 ID、*(vertex_value_input_first + i)(其中 i 在 [0, graph_view.local_vertex_partition_range_size()] 范围内)以及(标记的)顶点 ID 的有效载荷值,并返回一个元组,元组包含 1) 一个 cuda::std::optional 对象,可选择地存储一个桶索引,以及 2) 一个 cuda::std::optional 对象,可选择地存储一个新的顶点属性值。如果返回元组的第一个元素是 cuda::std::nullopt,则此(标记的)顶点将不会被插入到顶点前沿。如果第二个元素是 cuda::std::nullopt,则此顶点的顶点属性值将不会被更新。请注意,如果存在多个具有相同顶点 ID(但标记不同)的标记顶点,并且 v_op 在具有相同顶点 ID 的标记顶点上的结果中有多个有效的新顶点属性值,则目前行为是未定义的。

template<typename GraphViewType, typename KeyBuffer, typename VertexFrontierType, typename VertexValueInputIterator, typename VertexValueOutputIterator, typename VertexOp>
void update_v_frontier(raft::handle_t const &handle, GraphViewType const &graph_view, KeyBuffer &&key_buffer, VertexFrontierType &frontier, raft::host_span<size_t const> next_frontier_bucket_indices, VertexValueInputIterator vertex_value_input_first, VertexValueOutputIterator vertex_value_output_first, VertexOp v_op, bool do_expensive_check = false)#

将(标记的)顶点插入到顶点前沿,并更新新插入顶点的顶点属性值。

这个基本操作通常与 transform_reduce_if_v_frontier_outgoing_e_by_dst 一起使用。此版本的 update_v_frontier 不接受 payload_buffer,并且 @v_op 接受一个(标记的)顶点和一个顶点属性值作为输入参数(输入参数列表中没有有效载荷值)。

模板参数
  • GraphViewType – 传入的非拥有图对象的类型。

  • KeyBuffer – 存储(标记的)顶点的缓冲区类型。

  • VertexFrontierType – 抽象顶点前沿管理的顶点前沿类类型。

  • VertexValueInputIterator – 输入顶点属性值的迭代器类型。

  • VertexValueOutputIterator – 输出顶点属性变量的迭代器类型。

  • VertexOp – 二元顶点操作符的类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 非拥有图对象。

  • key_buffer – 存储要插入的(标记的)顶点的缓冲区对象。

  • frontier – 用于顶点前沿管理的 VertexFrontierType 类对象。此对象包含多个桶对象。

  • next_frontier_bucket_indices – 存储新前沿(标记的)顶点的顶点前沿桶的索引。

  • vertex_value_input_first – 指向第一个(包含)顶点(在多 GPU 中分配给此进程)的顶点属性值的迭代器。vertex_value_input_last(不包含)推导为 vertex_value_input_first + graph_view.local_vertex_partition_range_size()

  • vertex_value_output_first – 指向第一个(包含)顶点(多 GPU 中分配给此进程的顶点)的顶点属性变量的迭代器。vertex_value_output_last(不包含)由 vertex_value_output_first + graph_view.local_vertex_partition_range_size() 推导得出。

  • v_op – 二元操作符,接受(标记的)顶点 ID 和 *(vertex_value_input_first + i)(其中 i 在 [0, graph_view.local_vertex_partition_range_size()] 范围内),并返回一个元组,元组包含 1) 一个 cuda::std::optional 对象,可选择地存储一个桶索引,以及 2) 一个 cuda::std::optional 对象,可选择地存储一个新的顶点属性值。如果返回元组的第一个元素是 cuda::std::nullopt,则此(标记的)顶点将不会被插入到顶点前沿。如果第二个元素是 cuda::std::nullopt,则此顶点的顶点属性值将不会被更新。请注意,如果存在多个具有相同顶点 ID(但标记不同)的标记顶点,并且 v_op 在具有相同顶点 ID 的标记顶点上的结果有多个有效的新顶点属性值,则目前行为是未定义的。

template<typename vertex_t, typename KeyIterator>
KeyIterator compute_key_lower_bound(KeyIterator sorted_unique_key_first, KeyIterator sorted_unique_key_last, vertex_t v_threshold, rmm::cuda_stream_view stream_view)#
template<typename vertex_t, typename KeyIterator>
std::vector<size_t> compute_key_segment_offsets(KeyIterator sorted_key_first, KeyIterator sorted_key_last, raft::host_span<vertex_t const> segment_offsets, vertex_t vertex_range_first, rmm::cuda_stream_view stream_view)#
template<typename VertexIterator>
rmm::device_uvector<uint32_t> compute_vertex_list_bitmap_info(VertexIterator sorted_unique_vertex_first, VertexIterator sorted_unique_vertex_last, typename thrust::iterator_traits<VertexIterator>::value_type vertex_range_first, typename thrust::iterator_traits<VertexIterator>::value_type vertex_range_last, rmm::cuda_stream_view stream_view)#
template<typename InputVertexIterator, typename OutputVertexIterator>
void device_bcast_vertex_list(raft::comms::comms_t const &comm, std::variant<raft::device_span<uint32_t const>, InputVertexIterator> v_list, OutputVertexIterator output_v_first, typename thrust::iterator_traits<InputVertexIterator>::value_type vertex_range_first, typename thrust::iterator_traits<InputVertexIterator>::value_type vertex_range_last, size_t v_list_size, int root, rmm::cuda_stream_view stream_view)#
template<typename OutputVertexIterator>
void retrieve_vertex_list_from_bitmap(raft::device_span<uint32_t const> bitmap, OutputVertexIterator output_v_first, raft::device_span<size_t> count, typename thrust::iterator_traits<OutputVertexIterator>::value_type vertex_range_first, typename thrust::iterator_traits<OutputVertexIterator>::value_type vertex_range_last, rmm::cuda_stream_view stream_view)#
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t > > negative_sampling (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< raft::device_span< float const > > src_bias, std::optional< raft::device_span< float const > > dst_bias, size_t num_samples, bool remove_duplicates, bool remove_existing_edges, bool exact_number_of_samples, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t > > negative_sampling (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< raft::device_span< double const > > src_bias, std::optional< raft::device_span< double const > > dst_bias, size_t num_samples, bool remove_duplicates, bool remove_existing_edges, bool exact_number_of_samples, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t > > negative_sampling (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< raft::device_span< float const > > src_bias, std::optional< raft::device_span< float const > > dst_bias, size_t num_samples, bool remove_duplicates, bool remove_existing_edges, bool exact_number_of_samples, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t > > negative_sampling (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< raft::device_span< double const > > src_bias, std::optional< raft::device_span< double const > > dst_bias, size_t num_samples, bool remove_duplicates, bool remove_existing_edges, bool exact_number_of_samples, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t > > negative_sampling (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< raft::device_span< float const > > src_bias, std::optional< raft::device_span< float const > > dst_bias, size_t num_samples, bool remove_duplicates, bool remove_existing_edges, bool exact_number_of_samples, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t > > negative_sampling (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< raft::device_span< double const > > src_bias, std::optional< raft::device_span< double const > > dst_bias, size_t num_samples, bool remove_duplicates, bool remove_existing_edges, bool exact_number_of_samples, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t > > negative_sampling (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< raft::device_span< float const > > src_bias, std::optional< raft::device_span< float const > > dst_bias, size_t num_samples, bool remove_duplicates, bool remove_existing_edges, bool exact_number_of_samples, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t > > negative_sampling (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< raft::device_span< double const > > src_bias, std::optional< raft::device_span< double const > > dst_bias, size_t num_samples, bool remove_duplicates, bool remove_existing_edges, bool exact_number_of_samples, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > uniform_neighbor_sample (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_id_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_type_view, raft::device_span< int32_t const > starting_vertices, std::optional< raft::device_span< int32_t const > > starting_vertex_labels, std::optional< std::tuple< raft::device_span< int32_t const >, raft::device_span< int32_t const > > > label_to_output_comm_rank, raft::host_span< int32_t const > fan_out, raft::random::RngState &rng_state, bool return_hops, bool with_replacement, prior_sources_behavior_t prior_sources_behavior, bool dedupe_sources, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > uniform_neighbor_sample (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_id_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_type_view, raft::device_span< int32_t const > starting_vertices, std::optional< raft::device_span< int32_t const > > starting_vertex_labels, std::optional< std::tuple< raft::device_span< int32_t const >, raft::device_span< int32_t const > > > label_to_output_comm_rank, raft::host_span< int32_t const > fan_out, raft::random::RngState &rng_state, bool return_hops, bool with_replacement, prior_sources_behavior_t prior_sources_behavior, bool dedupe_sources, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > biased_neighbor_sample (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_id_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_type_view, edge_property_view_t< int32_t, float const * > edge_bias_view, raft::device_span< int32_t const > starting_vertices, std::optional< raft::device_span< int32_t const > > starting_vertex_labels, std::optional< std::tuple< raft::device_span< int32_t const >, raft::device_span< int32_t const > > > label_to_output_comm_rank, raft::host_span< int32_t const > fan_out, raft::random::RngState &rng_state, bool return_hops, bool with_replacement, prior_sources_behavior_t prior_sources_behavior, bool dedupe_sources, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > biased_neighbor_sample (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_id_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_type_view, edge_property_view_t< int32_t, double const * > edge_bias_view, raft::device_span< int32_t const > starting_vertices, std::optional< raft::device_span< int32_t const > > starting_vertex_labels, std::optional< std::tuple< raft::device_span< int32_t const >, raft::device_span< int32_t const > > > label_to_output_comm_rank, raft::host_span< int32_t const > fan_out, raft::random::RngState &rng_state, bool return_hops, bool with_replacement, prior_sources_behavior_t prior_sources_behavior, bool dedupe_sources, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > heterogeneous_uniform_neighbor_sample (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_id_view, edge_property_view_t< int32_t, int32_t const * > edge_type_view, raft::device_span< int32_t const > starting_vertices, std::optional< raft::device_span< int32_t const > > starting_vertex_labels, std::optional< raft::device_span< int32_t const > > label_to_output_comm_rank, raft::host_span< int32_t const > fan_out, int32_t num_edge_types, sampling_flags_t sampling_flags, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > heterogeneous_uniform_neighbor_sample (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_id_view, edge_property_view_t< int32_t, int32_t const * > edge_type_view, raft::device_span< int32_t const > starting_vertices, std::optional< raft::device_span< int32_t const > > starting_vertex_labels, std::optional< raft::device_span< int32_t const > > label_to_output_comm_rank, raft::host_span< int32_t const > fan_out, int32_t num_edge_types, sampling_flags_t sampling_flags, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > heterogeneous_biased_neighbor_sample (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_id_view, edge_property_view_t< int32_t, int32_t const * > edge_type_view, edge_property_view_t< int32_t, double const * > edge_bias_view, raft::device_span< int32_t const > starting_vertices, std::optional< raft::device_span< int32_t const > > starting_vertex_labels, std::optional< raft::device_span< int32_t const > > label_to_output_comm_rank, raft::host_span< int32_t const > fan_out, int32_t num_edge_types, sampling_flags_t sampling_flags, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > heterogeneous_biased_neighbor_sample (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_id_view, edge_property_view_t< int32_t, int32_t const * > edge_type_view, edge_property_view_t< int32_t, float const * > edge_bias_view, raft::device_span< int32_t const > starting_vertices, std::optional< raft::device_span< int32_t const > > starting_vertex_labels, std::optional< raft::device_span< int32_t const > > label_to_output_comm_rank, raft::host_span< int32_t const > fan_out, int32_t num_edge_types, sampling_flags_t sampling_flags, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > homogeneous_uniform_neighbor_sample (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_id_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_type_view, raft::device_span< int32_t const > starting_vertices, std::optional< raft::device_span< int32_t const > > starting_vertex_labels, std::optional< raft::device_span< int32_t const > > label_to_output_comm_rank, raft::host_span< int32_t const > fan_out, sampling_flags_t sampling_flags, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > homogeneous_uniform_neighbor_sample (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_id_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_type_view, raft::device_span< int32_t const > starting_vertices, std::optional< raft::device_span< int32_t const > > starting_vertex_labels, std::optional< raft::device_span< int32_t const > > label_to_output_comm_rank, raft::host_span< int32_t const > fan_out, sampling_flags_t sampling_flags, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > homogeneous_biased_neighbor_sample (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_id_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_type_view, edge_property_view_t< int32_t, double const * > edge_bias_view, raft::device_span< int32_t const > starting_vertices, std::optional< raft::device_span< int32_t const > > starting_vertex_labels, std::optional< raft::device_span< int32_t const > > label_to_output_comm_rank, raft::host_span< int32_t const > fan_out, sampling_flags_t sampling_flags, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > homogeneous_biased_neighbor_sample (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_id_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_type_view, edge_property_view_t< int32_t, float const * > edge_bias_view, raft::device_span< int32_t const > starting_vertices, std::optional< raft::device_span< int32_t const > > starting_vertex_labels, std::optional< raft::device_span< int32_t const > > label_to_output_comm_rank, raft::host_span< int32_t const > fan_out, sampling_flags_t sampling_flags, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > uniform_neighbor_sample (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, std::optional< edge_property_view_t< int64_t, int64_t const * > > edge_id_view, std::optional< edge_property_view_t< int64_t, int32_t const * > > edge_type_view, raft::device_span< int64_t const > starting_vertices, std::optional< raft::device_span< int32_t const > > starting_vertex_labels, std::optional< std::tuple< raft::device_span< int32_t const >, raft::device_span< int32_t const > > > label_to_output_comm_rank, raft::host_span< int32_t const > fan_out, raft::random::RngState &rng_state, bool return_hops, bool with_replacement, prior_sources_behavior_t prior_sources_behavior, bool dedupe_sources, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > uniform_neighbor_sample (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, std::optional< edge_property_view_t< int64_t, int64_t const * > > edge_id_view, std::optional< edge_property_view_t< int64_t, int32_t const * > > edge_type_view, raft::device_span< int64_t const > starting_vertices, std::optional< raft::device_span< int32_t const > > starting_vertex_labels, std::optional< std::tuple< raft::device_span< int32_t const >, raft::device_span< int32_t const > > > label_to_output_comm_rank, raft::host_span< int32_t const > fan_out, raft::random::RngState &rng_state, bool return_hops, bool with_replacement, prior_sources_behavior_t prior_sources_behavior, bool dedupe_sources, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > biased_neighbor_sample (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, std::optional< edge_property_view_t< int64_t, int64_t const * > > edge_id_view, std::optional< edge_property_view_t< int64_t, int32_t const * > > edge_type_view, edge_property_view_t< int64_t, float const * > edge_bias_view, raft::device_span< int64_t const > starting_vertices, std::optional< raft::device_span< int32_t const > > starting_vertex_labels, std::optional< std::tuple< raft::device_span< int32_t const >, raft::device_span< int32_t const > > > label_to_output_comm_rank, raft::host_span< int32_t const > fan_out, raft::random::RngState &rng_state, bool return_hops, bool with_replacement, prior_sources_behavior_t prior_sources_behavior, bool dedupe_sources, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > biased_neighbor_sample (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, std::optional< edge_property_view_t< int64_t, int64_t const * > > edge_id_view, std::optional< edge_property_view_t< int64_t, int32_t const * > > edge_type_view, edge_property_view_t< int64_t, double const * > edge_bias_view, raft::device_span< int64_t const > starting_vertices, std::optional< raft::device_span< int32_t const > > starting_vertex_labels, std::optional< std::tuple< raft::device_span< int32_t const >, raft::device_span< int32_t const > > > label_to_output_comm_rank, raft::host_span< int32_t const > fan_out, raft::random::RngState &rng_state, bool return_hops, bool with_replacement, prior_sources_behavior_t prior_sources_behavior, bool dedupe_sources, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > heterogeneous_uniform_neighbor_sample (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, std::optional< edge_property_view_t< int64_t, int64_t const * > > edge_id_view, edge_property_view_t< int64_t, int32_t const * > edge_type_view, raft::device_span< int64_t const > starting_vertices, std::optional< raft::device_span< int32_t const > > starting_vertex_labels, std::optional< raft::device_span< int32_t const > > label_to_output_comm_rank, raft::host_span< int32_t const > fan_out, int32_t num_edge_types, sampling_flags_t sampling_flags, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > heterogeneous_uniform_neighbor_sample (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, std::optional< edge_property_view_t< int64_t, int64_t const * > > edge_id_view, edge_property_view_t< int64_t, int32_t const * > edge_type_view, raft::device_span< int64_t const > starting_vertices, std::optional< raft::device_span< int32_t const > > starting_vertex_labels, std::optional< raft::device_span< int32_t const > > label_to_output_comm_rank, raft::host_span< int32_t const > fan_out, int32_t num_edge_types, sampling_flags_t sampling_flags, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > heterogeneous_biased_neighbor_sample (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, std::optional< edge_property_view_t< int64_t, int64_t const * > > edge_id_view, edge_property_view_t< int64_t, int32_t const * > edge_type_view, edge_property_view_t< int64_t, double const * > edge_bias_view, raft::device_span< int64_t const > starting_vertices, std::optional< raft::device_span< int32_t const > > starting_vertex_labels, std::optional< raft::device_span< int32_t const > > label_to_output_comm_rank, raft::host_span< int32_t const > fan_out, int32_t num_edge_types, sampling_flags_t sampling_flags, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > heterogeneous_biased_neighbor_sample (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, std::optional< edge_property_view_t< int64_t, int64_t const * > > edge_id_view, edge_property_view_t< int64_t, int32_t const * > edge_type_view, edge_property_view_t< int64_t, float const * > edge_bias_view, raft::device_span< int64_t const > starting_vertices, std::optional< raft::device_span< int32_t const > > starting_vertex_labels, std::optional< raft::device_span< int32_t const > > label_to_output_comm_rank, raft::host_span< int32_t const > fan_out, int32_t num_edge_types, sampling_flags_t sampling_flags, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > homogeneous_uniform_neighbor_sample (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, std::optional< edge_property_view_t< int64_t, int64_t const * > > edge_id_view, std::optional< edge_property_view_t< int64_t, int32_t const * > > edge_type_view, raft::device_span< int64_t const > starting_vertices, std::optional< raft::device_span< int32_t const > > starting_vertex_labels, std::optional< raft::device_span< int32_t const > > label_to_output_comm_rank, raft::host_span< int32_t const > fan_out, sampling_flags_t sampling_flags, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > homogeneous_uniform_neighbor_sample (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, std::optional< edge_property_view_t< int64_t, int64_t const * > > edge_id_view, std::optional< edge_property_view_t< int64_t, int32_t const * > > edge_type_view, raft::device_span< int64_t const > starting_vertices, std::optional< raft::device_span< int32_t const > > starting_vertex_labels, std::optional< raft::device_span< int32_t const > > label_to_output_comm_rank, raft::host_span< int32_t const > fan_out, sampling_flags_t sampling_flags, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > homogeneous_biased_neighbor_sample (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, std::optional< edge_property_view_t< int64_t, int64_t const * > > edge_id_view, std::optional< edge_property_view_t< int64_t, int32_t const * > > edge_type_view, edge_property_view_t< int64_t, double const * > edge_bias_view, raft::device_span< int64_t const > starting_vertices, std::optional< raft::device_span< int32_t const > > starting_vertex_labels, std::optional< raft::device_span< int32_t const > > label_to_output_comm_rank, raft::host_span< int32_t const > fan_out, sampling_flags_t sampling_flags, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > homogeneous_biased_neighbor_sample (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, std::optional< edge_property_view_t< int64_t, int64_t const * > > edge_id_view, std::optional< edge_property_view_t< int64_t, int32_t const * > > edge_type_view, edge_property_view_t< int64_t, float const * > edge_bias_view, raft::device_span< int64_t const > starting_vertices, std::optional< raft::device_span< int32_t const > > starting_vertex_labels, std::optional< raft::device_span< int32_t const > > label_to_output_comm_rank, raft::host_span< int32_t const > fan_out, sampling_flags_t sampling_flags, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > uniform_neighbor_sample (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_id_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_type_view, raft::device_span< int32_t const > starting_vertices, std::optional< raft::device_span< int32_t const > > starting_vertex_labels, std::optional< std::tuple< raft::device_span< int32_t const >, raft::device_span< int32_t const > > > label_to_output_comm_rank, raft::host_span< int32_t const > fan_out, raft::random::RngState &rng_state, bool return_hops, bool with_replacement, prior_sources_behavior_t prior_sources_behavior, bool dedupe_sources, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > uniform_neighbor_sample (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_id_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_type_view, raft::device_span< int32_t const > starting_vertices, std::optional< raft::device_span< int32_t const > > starting_vertex_labels, std::optional< std::tuple< raft::device_span< int32_t const >, raft::device_span< int32_t const > > > label_to_output_comm_rank, raft::host_span< int32_t const > fan_out, raft::random::RngState &rng_state, bool return_hops, bool with_replacement, prior_sources_behavior_t prior_sources_behavior, bool dedupe_sources, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > biased_neighbor_sample (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_id_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_type_view, edge_property_view_t< int32_t, float const * > edge_bias_view, raft::device_span< int32_t const > starting_vertices, std::optional< raft::device_span< int32_t const > > starting_vertex_labels, std::optional< std::tuple< raft::device_span< int32_t const >, raft::device_span< int32_t const > > > label_to_output_comm_rank, raft::host_span< int32_t const > fan_out, raft::random::RngState &rng_state, bool return_hops, bool with_replacement, prior_sources_behavior_t prior_sources_behavior, bool dedupe_sources, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > biased_neighbor_sample (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_id_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_type_view, edge_property_view_t< int32_t, double const * > edge_bias_view, raft::device_span< int32_t const > starting_vertices, std::optional< raft::device_span< int32_t const > > starting_vertex_labels, std::optional< std::tuple< raft::device_span< int32_t const >, raft::device_span< int32_t const > > > label_to_output_comm_rank, raft::host_span< int32_t const > fan_out, raft::random::RngState &rng_state, bool return_hops, bool with_replacement, prior_sources_behavior_t prior_sources_behavior, bool dedupe_sources, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > heterogeneous_uniform_neighbor_sample (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_id_view, edge_property_view_t< int32_t, int32_t const * > edge_type_view, raft::device_span< int32_t const > starting_vertices, std::optional< raft::device_span< int32_t const > > starting_vertex_labels, std::optional< raft::device_span< int32_t const > > label_to_output_comm_rank, raft::host_span< int32_t const > fan_out, int32_t num_edge_types, sampling_flags_t sampling_flags, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > heterogeneous_uniform_neighbor_sample (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_id_view, edge_property_view_t< int32_t, int32_t const * > edge_type_view, raft::device_span< int32_t const > starting_vertices, std::optional< raft::device_span< int32_t const > > starting_vertex_labels, std::optional< raft::device_span< int32_t const > > label_to_output_comm_rank, raft::host_span< int32_t const > fan_out, int32_t num_edge_types, sampling_flags_t sampling_flags, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > heterogeneous_biased_neighbor_sample (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_id_view, edge_property_view_t< int32_t, int32_t const * > edge_type_view, edge_property_view_t< int32_t, double const * > edge_bias_view, raft::device_span< int32_t const > starting_vertices, std::optional< raft::device_span< int32_t const > > starting_vertex_labels, std::optional< raft::device_span< int32_t const > > label_to_output_comm_rank, raft::host_span< int32_t const > fan_out, int32_t num_edge_types, sampling_flags_t sampling_flags, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > heterogeneous_biased_neighbor_sample (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_id_view, edge_property_view_t< int32_t, int32_t const * > edge_type_view, edge_property_view_t< int32_t, float const * > edge_bias_view, raft::device_span< int32_t const > starting_vertices, std::optional< raft::device_span< int32_t const > > starting_vertex_labels, std::optional< raft::device_span< int32_t const > > label_to_output_comm_rank, raft::host_span< int32_t const > fan_out, int32_t num_edge_types, sampling_flags_t sampling_flags, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > homogeneous_uniform_neighbor_sample (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_id_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_type_view, raft::device_span< int32_t const > starting_vertices, std::optional< raft::device_span< int32_t const > > starting_vertex_labels, std::optional< raft::device_span< int32_t const > > label_to_output_comm_rank, raft::host_span< int32_t const > fan_out, sampling_flags_t sampling_flags, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > homogeneous_uniform_neighbor_sample (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_id_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_type_view, raft::device_span< int32_t const > starting_vertices, std::optional< raft::device_span< int32_t const > > starting_vertex_labels, std::optional< raft::device_span< int32_t const > > label_to_output_comm_rank, raft::host_span< int32_t const > fan_out, sampling_flags_t sampling_flags, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > homogeneous_biased_neighbor_sample (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_id_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_type_view, edge_property_view_t< int32_t, double const * > edge_bias_view, raft::device_span< int32_t const > starting_vertices, std::optional< raft::device_span< int32_t const > > starting_vertex_labels, std::optional< raft::device_span< int32_t const > > label_to_output_comm_rank, raft::host_span< int32_t const > fan_out, sampling_flags_t sampling_flags, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > homogeneous_biased_neighbor_sample (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_id_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_type_view, edge_property_view_t< int32_t, float const * > edge_bias_view, raft::device_span< int32_t const > starting_vertices, std::optional< raft::device_span< int32_t const > > starting_vertex_labels, std::optional< raft::device_span< int32_t const > > label_to_output_comm_rank, raft::host_span< int32_t const > fan_out, sampling_flags_t sampling_flags, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > uniform_neighbor_sample (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, std::optional< edge_property_view_t< int64_t, int64_t const * > > edge_id_view, std::optional< edge_property_view_t< int64_t, int32_t const * > > edge_type_view, raft::device_span< int64_t const > starting_vertices, std::optional< raft::device_span< int32_t const > > starting_vertex_labels, std::optional< std::tuple< raft::device_span< int32_t const >, raft::device_span< int32_t const > > > label_to_output_comm_rank, raft::host_span< int32_t const > fan_out, raft::random::RngState &rng_state, bool return_hops, bool with_replacement, prior_sources_behavior_t prior_sources_behavior, bool dedupe_sources, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > uniform_neighbor_sample (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, std::optional< edge_property_view_t< int64_t, int64_t const * > > edge_id_view, std::optional< edge_property_view_t< int64_t, int32_t const * > > edge_type_view, raft::device_span< int64_t const > starting_vertices, std::optional< raft::device_span< int32_t const > > starting_vertex_labels, std::optional< std::tuple< raft::device_span< int32_t const >, raft::device_span< int32_t const > > > label_to_output_comm_rank, raft::host_span< int32_t const > fan_out, raft::random::RngState &rng_state, bool return_hops, bool with_replacement, prior_sources_behavior_t prior_sources_behavior, bool dedupe_sources, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > biased_neighbor_sample (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, std::optional< edge_property_view_t< int64_t, int64_t const * > > edge_id_view, std::optional< edge_property_view_t< int64_t, int32_t const * > > edge_type_view, edge_property_view_t< int64_t, float const * > edge_bias_view, raft::device_span< int64_t const > starting_vertices, std::optional< raft::device_span< int32_t const > > starting_vertex_labels, std::optional< std::tuple< raft::device_span< int32_t const >, raft::device_span< int32_t const > > > label_to_output_comm_rank, raft::host_span< int32_t const > fan_out, raft::random::RngState &rng_state, bool return_hops, bool with_replacement, prior_sources_behavior_t prior_sources_behavior, bool dedupe_sources, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > biased_neighbor_sample (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, std::optional< edge_property_view_t< int64_t, int64_t const * > > edge_id_view, std::optional< edge_property_view_t< int64_t, int32_t const * > > edge_type_view, edge_property_view_t< int64_t, double const * > edge_bias_view, raft::device_span< int64_t const > starting_vertices, std::optional< raft::device_span< int32_t const > > starting_vertex_labels, std::optional< std::tuple< raft::device_span< int32_t const >, raft::device_span< int32_t const > > > label_to_output_comm_rank, raft::host_span< int32_t const > fan_out, raft::random::RngState &rng_state, bool return_hops, bool with_replacement, prior_sources_behavior_t prior_sources_behavior, bool dedupe_sources, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > heterogeneous_uniform_neighbor_sample (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, std::optional< edge_property_view_t< int64_t, int64_t const * > > edge_id_view, edge_property_view_t< int64_t, int32_t const * > edge_type_view, raft::device_span< int64_t const > starting_vertices, std::optional< raft::device_span< int32_t const > > starting_vertex_labels, std::optional< raft::device_span< int32_t const > > label_to_output_comm_rank, raft::host_span< int32_t const > fan_out, int32_t num_edge_types, sampling_flags_t sampling_flags, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > heterogeneous_uniform_neighbor_sample (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, std::optional< edge_property_view_t< int64_t, int64_t const * > > edge_id_view, edge_property_view_t< int64_t, int32_t const * > edge_type_view, raft::device_span< int64_t const > starting_vertices, std::optional< raft::device_span< int32_t const > > starting_vertex_labels, std::optional< raft::device_span< int32_t const > > label_to_output_comm_rank, raft::host_span< int32_t const > fan_out, int32_t num_edge_types, sampling_flags_t sampling_flags, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > heterogeneous_biased_neighbor_sample (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, std::optional< edge_property_view_t< int64_t, int64_t const * > > edge_id_view, edge_property_view_t< int64_t, int32_t const * > edge_type_view, edge_property_view_t< int64_t, double const * > edge_bias_view, raft::device_span< int64_t const > starting_vertices, std::optional< raft::device_span< int32_t const > > starting_vertex_labels, std::optional< raft::device_span< int32_t const > > label_to_output_comm_rank, raft::host_span< int32_t const > fan_out, int32_t num_edge_types, sampling_flags_t sampling_flags, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > heterogeneous_biased_neighbor_sample (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, std::optional< edge_property_view_t< int64_t, int64_t const * > > edge_id_view, edge_property_view_t< int64_t, int32_t const * > edge_type_view, edge_property_view_t< int64_t, float const * > edge_bias_view, raft::device_span< int64_t const > starting_vertices, std::optional< raft::device_span< int32_t const > > starting_vertex_labels, std::optional< raft::device_span< int32_t const > > label_to_output_comm_rank, raft::host_span< int32_t const > fan_out, int32_t num_edge_types, sampling_flags_t sampling_flags, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > homogeneous_uniform_neighbor_sample (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, std::optional< edge_property_view_t< int64_t, int64_t const * > > edge_id_view, std::optional< edge_property_view_t< int64_t, int32_t const * > > edge_type_view, raft::device_span< int64_t const > starting_vertices, std::optional< raft::device_span< int32_t const > > starting_vertex_labels, std::optional< raft::device_span< int32_t const > > label_to_output_comm_rank, raft::host_span< int32_t const > fan_out, sampling_flags_t sampling_flags, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > homogeneous_uniform_neighbor_sample (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, std::optional< edge_property_view_t< int64_t, int64_t const * > > edge_id_view, std::optional< edge_property_view_t< int64_t, int32_t const * > > edge_type_view, raft::device_span< int64_t const > starting_vertices, std::optional< raft::device_span< int32_t const > > starting_vertex_labels, std::optional< raft::device_span< int32_t const > > label_to_output_comm_rank, raft::host_span< int32_t const > fan_out, sampling_flags_t sampling_flags, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > homogeneous_biased_neighbor_sample (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, std::optional< edge_property_view_t< int64_t, int64_t const * > > edge_id_view, std::optional< edge_property_view_t< int64_t, int32_t const * > > edge_type_view, edge_property_view_t< int64_t, double const * > edge_bias_view, raft::device_span< int64_t const > starting_vertices, std::optional< raft::device_span< int32_t const > > starting_vertex_labels, std::optional< raft::device_span< int32_t const > > label_to_output_comm_rank, raft::host_span< int32_t const > fan_out, sampling_flags_t sampling_flags, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > homogeneous_biased_neighbor_sample (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, std::optional< edge_property_view_t< int64_t, int64_t const * > > edge_id_view, std::optional< edge_property_view_t< int64_t, int32_t const * > > edge_type_view, edge_property_view_t< int64_t, float const * > edge_bias_view, raft::device_span< int64_t const > starting_vertices, std::optional< raft::device_span< int32_t const > > starting_vertex_labels, std::optional< raft::device_span< int32_t const > > label_to_output_comm_rank, raft::host_span< int32_t const > fan_out, sampling_flags_t sampling_flags, bool do_expensive_check)
template<typename vertex_t, typename index_t>
std::tuple<rmm::device_uvector<vertex_t>, rmm::device_uvector<vertex_t>, rmm::device_uvector<index_t>> convert_paths_to_coo(raft::handle_t const &handle, index_t coalesced_sz_v, index_t num_paths, rmm::device_buffer &&d_coalesced_v, rmm::device_buffer &&d_sizes)#

从随机游走 (RW) 路径返回 COO 格式 (src\_vector, dst\_vector)。

模板参数
  • vertex_t – 顶点索引的类型。

  • index_t – 用于存储索引和大小的类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • coalesced_sz_v – 合并后的顶点向量大小。

  • num_paths – 路径数量。

  • d_coalesced_v – 合并后的顶点缓冲区。

  • d_sizes – 路径大小缓冲区。

返回

(src\_vertex\_vector, dst\_Vertex\_vector, path\_offsets) 的元组,其中 path\_offsets 是每个路径的 COO 集开始处的偏移量。

template<typename index_t>
std::tuple<rmm::device_uvector<index_t>, rmm::device_uvector<index_t>, rmm::device_uvector<index_t>> query_rw_sizes_offsets(raft::handle_t const &handle, index_t num_paths, index_t const *ptr_d_sizes)#

返回关于顶点路径偏移量、权重路径大小和偏移量的额外 RW 信息,适用于合并情况(填充情况不需要或不提供此信息)。

模板参数

index_t – 用于存储索引和大小的类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • num_paths – 路径数量。

  • ptr_d_sizes – 顶点路径的大小。

返回

(vertex\_path\_offsets, weight\_path\_sizes, weight\_path\_offsets) 的元组,其中偏移量是对应大小的独占扫描。

template std::tuple< rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > > > uniform_random_walks (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, raft::device_span< int32_t const > start_vertices, size_t max_length)
template std::tuple< rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > > > uniform_random_walks (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, raft::device_span< int32_t const > start_vertices, size_t max_length)
template std::tuple< rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > > > biased_random_walks (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int32_t, int32_t, false, true > const &graph_view, edge_property_view_t< int32_t, float const * > edge_weight_view, raft::device_span< int32_t const > start_vertices, size_t max_length)
template std::tuple< rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > > > biased_random_walks (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int32_t, int32_t, false, true > const &graph_view, edge_property_view_t< int32_t, double const * > edge_weight_view, raft::device_span< int32_t const > start_vertices, size_t max_length)
template std::tuple< rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > > > node2vec_random_walks (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, raft::device_span< int32_t const > start_vertices, size_t max_length, float p, float q)
template std::tuple< rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > > > node2vec_random_walks (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, raft::device_span< int32_t const > start_vertices, size_t max_length, double p, double q)
template std::tuple< rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > > > uniform_random_walks (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, raft::device_span< int64_t const > start_vertices, size_t max_length)
template std::tuple< rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > > > uniform_random_walks (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, raft::device_span< int64_t const > start_vertices, size_t max_length)
template std::tuple< rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > > > biased_random_walks (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int64_t, int64_t, false, true > const &graph_view, edge_property_view_t< int64_t, float const * > edge_weight_view, raft::device_span< int64_t const > start_vertices, size_t max_length)
template std::tuple< rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > > > biased_random_walks (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int64_t, int64_t, false, true > const &graph_view, edge_property_view_t< int64_t, double const * > edge_weight_view, raft::device_span< int64_t const > start_vertices, size_t max_length)
template std::tuple< rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > > > node2vec_random_walks (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, raft::device_span< int64_t const > start_vertices, size_t max_length, float p, float q)
template std::tuple< rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > > > node2vec_random_walks (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, raft::device_span< int64_t const > start_vertices, size_t max_length, double p, double q)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< float >, rmm::device_uvector< int32_t > > random_walks (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &gview, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, int32_t const *ptr_d_start, int32_t num_paths, int32_t max_depth, bool use_padding, std::unique_ptr< sampling_params_t > sampling_strategy)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< float >, rmm::device_uvector< int64_t > > random_walks (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &gview, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, int64_t const *ptr_d_start, int64_t num_paths, int64_t max_depth, bool use_padding, std::unique_ptr< sampling_params_t > sampling_strategy)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< double >, rmm::device_uvector< int32_t > > random_walks (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &gview, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, int32_t const *ptr_d_start, int32_t num_paths, int32_t max_depth, bool use_padding, std::unique_ptr< sampling_params_t > sampling_strategy)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< double >, rmm::device_uvector< int64_t > > random_walks (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &gview, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, int64_t const *ptr_d_start, int64_t num_paths, int64_t max_depth, bool use_padding, std::unique_ptr< sampling_params_t > sampling_strategy)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t > > convert_paths_to_coo (raft::handle_t const &handle, int32_t coalesced_sz_v, int32_t num_paths, rmm::device_buffer &&d_coalesced_v, rmm::device_buffer &&d_sizes)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, rmm::device_uvector< int64_t > > convert_paths_to_coo (raft::handle_t const &handle, int64_t coalesced_sz_v, int64_t num_paths, rmm::device_buffer &&d_coalesced_v, rmm::device_buffer &&d_sizes)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t > > query_rw_sizes_offsets (raft::handle_t const &handle, int32_t num_paths, int32_t const *ptr_d_sizes)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t > > query_rw_sizes_offsets (raft::handle_t const &handle, int64_t num_paths, int64_t const *ptr_d_sizes)
template std::tuple< rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > > > uniform_random_walks (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, raft::device_span< int32_t const > start_vertices, size_t max_length)
template std::tuple< rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > > > uniform_random_walks (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, raft::device_span< int32_t const > start_vertices, size_t max_length)
template std::tuple< rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > > > biased_random_walks (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int32_t, int32_t, false, false > const &graph_view, edge_property_view_t< int32_t, float const * > edge_weight_view, raft::device_span< int32_t const > start_vertices, size_t max_length)
template std::tuple< rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > > > biased_random_walks (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int32_t, int32_t, false, false > const &graph_view, edge_property_view_t< int32_t, double const * > > edge_weight_view, raft::device_span< int32_t const > start_vertices, size_t max_length)
template std::tuple< rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > > > node2vec_random_walks (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, raft::device_span< int32_t const > start_vertices, size_t max_length, float p, float q)
template std::tuple< rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > > > node2vec_random_walks (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, raft::device_span< int32_t const > start_vertices, size_t max_length, double p, double q)
template std::tuple< rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > > > uniform_random_walks (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, raft::device_span< int64_t const > start_vertices, size_t max_length)
template std::tuple< rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > > > uniform_random_walks (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, raft::device_span< int64_t const > start_vertices, size_t max_length)
template std::tuple< rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > > > biased_random_walks (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int64_t, int64_t, false, false > const &graph_view, edge_property_view_t< int64_t, float const * > edge_weight_view, raft::device_span< int64_t const > start_vertices, size_t max_length)
template std::tuple< rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > > > biased_random_walks (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int64_t, int64_t, false, false > const &graph_view, edge_property_view_t< int64_t, double const * > > edge_weight_view, raft::device_span< int64_t const > start_vertices, size_t max_length)
template std::tuple< rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > > > node2vec_random_walks (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, raft::device_span< int64_t const > start_vertices, size_t max_length, float p, float q)
template std::tuple< rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > > > node2vec_random_walks (raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, raft::device_span< int64_t const > start_vertices, size_t max_length, double p, double q)
template std::tuple< std::optional< rmm::device_uvector< int32_t > >, rmm::device_uvector< size_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< size_t > > > renumber_and_compress_sampled_edgelist (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_hops, std::optional< raft::device_span< int32_t const > > seed_vertices, std::optional< raft::device_span< size_t const > > seed_vertex_label_offsets, std::optional< raft::device_span< size_t const > > edgelist_label_offsets, size_t num_labels, size_t num_hops, bool src_is_major, bool compress_per_hop, bool doubly_compress, bool do_expensive_check)
template std::tuple< std::optional< rmm::device_uvector< int32_t > >, rmm::device_uvector< size_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< size_t > > > renumber_and_compress_sampled_edgelist (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_hops, std::optional< raft::device_span< int32_t const > > seed_vertices, std::optional< raft::device_span< size_t const > > seed_vertex_label_offsets, std::optional< raft::device_span< size_t const > > edgelist_label_offsets, size_t num_labels, size_t num_hops, bool src_is_major, bool compress_per_hop, bool doubly_compress, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< size_t > > > renumber_and_sort_sampled_edgelist (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_hops, std::optional< raft::device_span< int32_t const > > seed_vertices, std::optional< raft::device_span< size_t const > > seed_vertex_label_offsets, std::optional< raft::device_span< size_t const > > edgelist_label_offsets, size_t num_labels, size_t num_hops, bool src_is_major, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< size_t > > > renumber_and_sort_sampled_edgelist (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_hops, std::optional< raft::device_span< int32_t const > > seed_vertices, std::optional< raft::device_span< size_t const > > seed_vertex_label_offsets, std::optional< raft::device_span< size_t const > > edgelist_label_offsets, size_t num_labels, size_t num_hops, bool src_is_major, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > >, rmm::device_uvector< int32_t >, rmm::device_uvector< size_t >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > heterogeneous_renumber_and_sort_sampled_edgelist (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_hops, std::optional< raft::device_span< int32_t const > > seed_vertices, std::optional< raft::device_span< size_t const > > seed_vertex_label_offsets, std::optional< raft::device_span< size_t const > > edgelist_label_offsets, raft::device_span< int32_t const > vertex_type_offsets, size_t num_labels, size_t num_hops, size_t num_vertex_types, size_t num_edge_types, bool src_is_major, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > >, rmm::device_uvector< int32_t >, rmm::device_uvector< size_t >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > heterogeneous_renumber_and_sort_sampled_edgelist (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_hops, std::optional< raft::device_span< int32_t const > > seed_vertices, std::optional< raft::device_span< size_t const > > seed_vertex_label_offsets, std::optional< raft::device_span< size_t const > > edgelist_label_offsets, raft::device_span< int32_t const > vertex_type_offsets, size_t num_labels, size_t num_hops, size_t num_vertex_types, size_t num_edge_types, bool src_is_major, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > sort_sampled_edgelist (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_hops, std::optional< raft::device_span< size_t const > > edgelist_label_offsets, size_t num_labels, size_t num_hops, bool src_is_major, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > sort_sampled_edgelist (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_hops, std::optional< raft::device_span< size_t const > > edgelist_label_offsets, size_t num_labels, size_t num_hops, bool src_is_major, bool do_expensive_check)
template std::tuple< std::optional< rmm::device_uvector< int64_t > >, rmm::device_uvector< size_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< size_t > > > renumber_and_compress_sampled_edgelist (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_hops, std::optional< raft::device_span< int64_t const > > seed_vertices, std::optional< raft::device_span< size_t const > > seed_vertex_label_offsets, std::optional< raft::device_span< size_t const > > edgelist_label_offsets, size_t num_labels, size_t num_hops, bool src_is_major, bool compress_per_hop, bool doubly_compress, bool do_expensive_check)
template std::tuple< std::optional< rmm::device_uvector< int64_t > >, rmm::device_uvector< size_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< size_t > > > renumber_and_compress_sampled_edgelist (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_hops, std::optional< raft::device_span< int64_t const > > seed_vertices, std::optional< raft::device_span< size_t const > > seed_vertex_label_offsets, std::optional< raft::device_span< size_t const > > edgelist_label_offsets, size_t num_labels, size_t num_hops, bool src_is_major, bool compress_per_hop, bool doubly_compress, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< size_t > > > renumber_and_sort_sampled_edgelist (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_hops, std::optional< raft::device_span< int64_t const > > seed_vertices, std::optional< raft::device_span< size_t const > > seed_vertex_label_offsets, std::optional< raft::device_span< size_t const > > edgelist_label_offsets, size_t num_labels, size_t num_hops, bool src_is_major, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< size_t > > > renumber_and_sort_sampled_edgelist (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_hops, std::optional< raft::device_span< int64_t const > > seed_vertices, std::optional< raft::device_span< size_t const > > seed_vertex_label_offsets, std::optional< raft::device_span< size_t const > > edgelist_label_offsets, size_t num_labels, size_t num_hops, bool src_is_major, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > >, rmm::device_uvector< int64_t >, rmm::device_uvector< size_t >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< size_t > > > heterogeneous_renumber_and_sort_sampled_edgelist (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_hops, std::optional< raft::device_span< int64_t const > > seed_vertices, std::optional< raft::device_span< size_t const > > seed_vertex_label_offsets, std::optional< raft::device_span< size_t const > > edgelist_label_offsets, raft::device_span< int64_t const > vertex_type_offsets, size_t num_labels, size_t num_hops, size_t num_vertex_types, size_t num_edge_types, bool src_is_major, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > >, rmm::device_uvector< int64_t >, rmm::device_uvector< size_t >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< size_t > > > heterogeneous_renumber_and_sort_sampled_edgelist (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_hops, std::optional< raft::device_span< int64_t const > > seed_vertices, std::optional< raft::device_span< size_t const > > seed_vertex_label_offsets, std::optional< raft::device_span< size_t const > > edgelist_label_offsets, raft::device_span< int64_t const > vertex_type_offsets, size_t num_labels, size_t num_hops, size_t num_vertex_types, size_t num_edge_types, bool src_is_major, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > sort_sampled_edgelist (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_hops, std::optional< raft::device_span< size_t const > > edgelist_label_offsets, size_t num_labels, size_t num_hops, bool src_is_major, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > sort_sampled_edgelist (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< size_t > > &&edgelist_hops, std::optional< raft::device_span< size_t const > > edgelist_label_offsets, size_t num_labels, size_t num_hops, bool src_is_major, bool do_expensive_check)
template std::tuple< graph_t< int32_t, int32_t, true, true >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, true >, float > >, std::optional< rmm::device_uvector< int32_t > > > coarsen_graph (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, true > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, int32_t const *labels, bool renumber, bool do_expensive_check)
template std::tuple< graph_t< int32_t, int32_t, false, true >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, true >, float > >, std::optional< rmm::device_uvector< int32_t > > > coarsen_graph (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, int32_t const *labels, bool renumber, bool do_expensive_check)
template std::tuple< graph_t< int32_t, int32_t, true, true >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, true >, double > >, std::optional< rmm::device_uvector< int32_t > > > coarsen_graph (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, true > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, int32_t const *labels, bool renumber, bool do_expensive_check)
template std::tuple< graph_t< int32_t, int32_t, false, true >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, true >, double > >, std::optional< rmm::device_uvector< int32_t > > > coarsen_graph (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, int32_t const *labels, bool renumber, bool do_expensive_check)
template std::tuple< graph_t< int64_t, int64_t, true, true >, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, true, true >, float > >, std::optional< rmm::device_uvector< int64_t > > > coarsen_graph (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, true > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, int64_t const *labels, bool renumber, bool do_expensive_check)
template std::tuple< graph_t< int64_t, int64_t, false, true >, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, false, true >, float > >, std::optional< rmm::device_uvector< int64_t > > > coarsen_graph (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, int64_t const *labels, bool renumber, bool do_expensive_check)
template std::tuple< graph_t< int64_t, int64_t, true, true >, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, true, true >, double > >, std::optional< rmm::device_uvector< int64_t > > > coarsen_graph (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, true > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, int64_t const *labels, bool renumber, bool do_expensive_check)
template std::tuple< graph_t< int64_t, int64_t, false, true >, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, false, true >, double > >, std::optional< rmm::device_uvector< int64_t > > > coarsen_graph (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, int64_t const *labels, bool renumber, bool do_expensive_check)
template std::tuple< graph_t< int32_t, int32_t, true, false >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, false >, float > >, std::optional< rmm::device_uvector< int32_t > > > coarsen_graph (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, false > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, int32_t const *labels, bool renumber, bool do_expensive_check)
template std::tuple< graph_t< int32_t, int32_t, false, false >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, false >, float > >, std::optional< rmm::device_uvector< int32_t > > > coarsen_graph (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, int32_t const *labels, bool renumber, bool do_expensive_check)
template std::tuple< graph_t< int32_t, int32_t, true, false >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, false >, double > >, std::optional< rmm::device_uvector< int32_t > > > coarsen_graph (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, false > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, int32_t const *labels, bool renumber, bool do_expensive_check)
template std::tuple< graph_t< int32_t, int32_t, false, false >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, false >, double > >, std::optional< rmm::device_uvector< int32_t > > > coarsen_graph (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, int32_t const *labels, bool renumber, bool do_expensive_check)
template std::tuple< graph_t< int64_t, int64_t, true, false >, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, true, false >, float > >, std::optional< rmm::device_uvector< int64_t > > > coarsen_graph (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, false > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, int64_t const *labels, bool renumber, bool do_expensive_check)
template std::tuple< graph_t< int64_t, int64_t, false, false >, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, false, false >, float > >, std::optional< rmm::device_uvector< int64_t > > > coarsen_graph (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, int64_t const *labels, bool renumber, bool do_expensive_check)
template std::tuple< graph_t< int64_t, int64_t, true, false >, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, true, false >, double > >, std::optional< rmm::device_uvector< int64_t > > > coarsen_graph (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, false > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, int64_t const *labels, bool renumber, bool do_expensive_check)
template std::tuple< graph_t< int64_t, int64_t, false, false >, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, false, false >, double > >, std::optional< rmm::device_uvector< int64_t > > > coarsen_graph (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, int64_t const *labels, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int32_t, int32_t, false, true >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, float > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, int32_t > >, std::optional< rmm::device_uvector< int32_t > > > create_graph_from_edgelist< int32_t, int32_t, float, int32_t, false, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&vertices, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int32_t, int32_t, true, true >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, true >, float > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, true >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, true >, int32_t > >, std::optional< rmm::device_uvector< int32_t > > > create_graph_from_edgelist< int32_t, int32_t, float, int32_t, true, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&vertices, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int32_t, int32_t, false, true >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, double > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, int32_t > >, std::optional< rmm::device_uvector< int32_t > > > create_graph_from_edgelist< int32_t, int32_t, double, int32_t, false, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&vertices, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int32_t, int32_t, true, true >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, true >, double > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, true >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, true >, int32_t > >, std::optional< rmm::device_uvector< int32_t > > > create_graph_from_edgelist< int32_t, int32_t, double, int32_t, true, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&vertices, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int32_t, int32_t, false, true >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, float > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, int32_t > >, std::optional< rmm::device_uvector< int32_t > > > create_graph_from_edgelist< int32_t, int32_t, float, int32_t, false, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&vertices, std::vector< rmm::device_uvector< int32_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int32_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< float > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int32_t, int32_t, true, true >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, true >, float > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, true >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, true >, int32_t > >, std::optional< rmm::device_uvector< int32_t > > > create_graph_from_edgelist< int32_t, int32_t, float, int32_t, true, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&vertices, std::vector< rmm::device_uvector< int32_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int32_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< float > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int32_t, int32_t, false, true >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, double > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, int32_t > >, std::optional< rmm::device_uvector< int32_t > > > create_graph_from_edgelist< int32_t, int32_t, double, int32_t, false, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&vertices, std::vector< rmm::device_uvector< int32_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int32_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< double > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int32_t, int32_t, true, true >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, true >, double > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, true >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, true >, int32_t > >, std::optional< rmm::device_uvector< int32_t > > > create_graph_from_edgelist< int32_t, int32_t, double, int32_t, true, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&vertices, std::vector< rmm::device_uvector< int32_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int32_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< double > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< graph_t< int32_t, int32_t, false, true >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, true >, float > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, true >, int32_t > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, true >, int32_t > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, true >, int32_t > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, true >, int32_t > >, std::optional< rmm::device_uvector< int32_t > > > create_graph_from_edgelist< int32_t, int32_t, float, int32_t, int32_t, false, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&vertices, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< graph_t< int32_t, int32_t, true, true >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, true >, float > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, true >, int32_t > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, true >, int32_t > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, true >, int32_t > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, true >, int32_t > >, std::optional< rmm::device_uvector< int32_t > > > create_graph_from_edgelist< int32_t, int32_t, float, int32_t, int32_t, true, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&vertices, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< graph_t< int32_t, int32_t, false, true >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, true >, double > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, true >, int32_t > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, true >, int32_t > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, true >, int32_t > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, true >, int32_t > >, std::optional< rmm::device_uvector< int32_t > > > create_graph_from_edgelist< int32_t, int32_t, double, int32_t, int32_t, false, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&vertices, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< graph_t< int32_t, int32_t, true, true >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, true >, double > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, true >, int32_t > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, true >, int32_t > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, true >, int32_t > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, true >, int32_t > >, std::optional< rmm::device_uvector< int32_t > > > create_graph_from_edgelist< int32_t, int32_t, double, int32_t, int32_t, true, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&vertices, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< graph_t< int32_t, int32_t, false, true >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, true >, float > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, true >, int32_t > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, true >, int32_t > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, true >, int32_t > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, true >, int32_t > >, std::optional< rmm::device_uvector< int32_t > > > create_graph_from_edgelist< int32_t, int32_t, float, int32_t, int32_t, false, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&vertices, std::vector< rmm::device_uvector< int32_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int32_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< float > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_start_times, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< graph_t< int32_t, int32_t, true, true >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, true >, float > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, true >, int32_t > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, true >, int32_t > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, true >, int32_t > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, true >, int32_t > >, std::optional< rmm::device_uvector< int32_t > > > create_graph_from_edgelist< int32_t, int32_t, float, int32_t, int32_t, true, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&vertices, std::vector< rmm::device_uvector< int32_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int32_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< float > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_start_times, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< graph_t< int32_t, int32_t, false, true >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, true >, double > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, true >, int32_t > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, true >, int32_t > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, true >, int32_t > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, true >, int32_t > >, std::optional< rmm::device_uvector< int32_t > > > create_graph_from_edgelist< int32_t, int32_t, double, int32_t, int32_t, false, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&vertices, std::vector< rmm::device_uvector< int32_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int32_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< double > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_start_times, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< graph_t< int32_t, int32_t, true, true >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, true >, double > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, true >, int32_t > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, true >, int32_t > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, true >, int32_t > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, true >, int32_t > >, std::optional< rmm::device_uvector< int32_t > > > create_graph_from_edgelist< int32_t, int32_t, double, int32_t, int32_t, true, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&vertices, std::vector< rmm::device_uvector< int32_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int32_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< double > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_start_times, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int32_t, int32_t, false, true >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, float > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, int64_t > >, std::optional< rmm::device_uvector< int32_t > > > create_graph_from_edgelist< int32_t, int32_t, float, int32_t, int64_t, false, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&vertices, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int32_t, int32_t, true, true >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, true >, float > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, true >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, true >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, true >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, true >, int64_t > >, std::optional< rmm::device_uvector< int32_t > > > create_graph_from_edgelist< int32_t, int32_t, float, int32_t, int64_t, true, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&vertices, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int32_t, int32_t, false, true >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, double > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, int64_t > >, std::optional< rmm::device_uvector< int32_t > > > create_graph_from_edgelist< int32_t, int32_t, double, int32_t, int64_t, false, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&vertices, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int32_t, int32_t, true, true >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, true >, double > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, true >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, true >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, true >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, true >, int64_t > >, std::optional< rmm::device_uvector< int32_t > > > create_graph_from_edgelist< int32_t, int32_t, double, int32_t, int64_t, true, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&vertices, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int32_t, int32_t, false, true >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, float > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, int64_t > >, std::optional< rmm::device_uvector< int32_t > > > create_graph_from_edgelist< int32_t, int32_t, float, int32_t, int64_t, false, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&vertices, std::vector< rmm::device_uvector< int32_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int32_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< float > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_start_times, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int32_t, int32_t, true, true >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, true >, float > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, true >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, true >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, true >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, true >, int64_t > >, std::optional< rmm::device_uvector< int32_t > > > create_graph_from_edgelist< int32_t, int32_t, float, int32_t, int64_t, true, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&vertices, std::vector< rmm::device_uvector< int32_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int32_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< float > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_start_times, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int32_t, int32_t, false, true >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, double > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, int64_t > >, std::optional< rmm::device_uvector< int32_t > > > create_graph_from_edgelist< int32_t, int32_t, double, int32_t, int64_t, false, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&vertices, std::vector< rmm::device_uvector< int32_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int32_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< double > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_start_times, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int32_t, int32_t, true, true >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, true >, double > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, true >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, true >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, true >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, true >, int64_t > >, std::optional< rmm::device_uvector< int32_t > > > create_graph_from_edgelist< int32_t, int32_t, double, int32_t, int64_t, true, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&vertices, std::vector< rmm::device_uvector< int32_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int32_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< double > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_start_times, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int64_t, int64_t, false, true >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, float > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int32_t > >, std::optional< rmm::device_uvector< int64_t > > > create_graph_from_edgelist< int64_t, int64_t, float, int32_t, false, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&vertices, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int64_t, int64_t, true, true >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, float > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, int32_t > >, std::optional< rmm::device_uvector< int64_t > > > create_graph_from_edgelist< int64_t, int64_t, float, int32_t, true, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&vertices, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int64_t, int64_t, false, true >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, double > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int32_t > >, std::optional< rmm::device_uvector< int64_t > > > create_graph_from_edgelist< int64_t, int64_t, double, int32_t, false, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&vertices, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int64_t, int64_t, true, true >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, double > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, int32_t > >, std::optional< rmm::device_uvector< int64_t > > > create_graph_from_edgelist< int64_t, int64_t, double, int32_t, true, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&vertices, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int64_t, int64_t, false, true >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, float > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int32_t > >, std::optional< rmm::device_uvector< int64_t > > > create_graph_from_edgelist< int64_t, int64_t, float, int32_t, false, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&vertices, std::vector< rmm::device_uvector< int64_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int64_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< float > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int64_t, int64_t, true, true >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, float > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, int32_t > >, std::optional< rmm::device_uvector< int64_t > > > create_graph_from_edgelist< int64_t, int64_t, float, int32_t, true, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&vertices, std::vector< rmm::device_uvector< int64_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int64_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< float > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int64_t, int64_t, false, true >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, double > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int32_t > >, std::optional< rmm::device_uvector< int64_t > > > create_graph_from_edgelist< int64_t, int64_t, double, int32_t, false, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&vertices, std::vector< rmm::device_uvector< int64_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int64_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< double > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int64_t, int64_t, true, true >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, double > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, int32_t > >, std::optional< rmm::device_uvector< int64_t > > > create_graph_from_edgelist< int64_t, int64_t, double, int32_t, true, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&vertices, std::vector< rmm::device_uvector< int64_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int64_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< double > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int64_t, int64_t, false, true >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, float > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int32_t > >, std::optional< rmm::device_uvector< int64_t > > > create_graph_from_edgelist< int64_t, int64_t, float, int32_t, int32_t, false, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&vertices, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int64_t, int64_t, true, true >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, float > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, int32_t > >, std::optional< rmm::device_uvector< int64_t > > > create_graph_from_edgelist< int64_t, int64_t, float, int32_t, int32_t, true, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&vertices, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int64_t, int64_t, false, true >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, double > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int32_t > >, std::optional< rmm::device_uvector< int64_t > > > create_graph_from_edgelist< int64_t, int64_t, double, int32_t, int32_t, false, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&vertices, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int64_t, int64_t, true, true >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, double > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, int32_t > >, std::optional< rmm::device_uvector< int64_t > > > create_graph_from_edgelist< int64_t, int64_t, double, int32_t, int32_t, true, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&vertices, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int64_t, int64_t, false, true >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, float > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int32_t > >, std::optional< rmm::device_uvector< int64_t > > > create_graph_from_edgelist< int64_t, int64_t, float, int32_t, int32_t, false, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&vertices, std::vector< rmm::device_uvector< int64_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int64_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< float > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_start_times, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int64_t, int64_t, true, true >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, float > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, int32_t > >, std::optional< rmm::device_uvector< int64_t > > > create_graph_from_edgelist< int64_t, int64_t, float, int32_t, int32_t, true, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&vertices, std::vector< rmm::device_uvector< int64_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int64_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< float > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_start_times, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int64_t, int64_t, false, true >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, double > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int32_t > >, std::optional< rmm::device_uvector< int64_t > > > create_graph_from_edgelist< int64_t, int64_t, double, int32_t, int32_t, false, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&vertices, std::vector< rmm::device_uvector< int64_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int64_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< double > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_start_times, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int64_t, int64_t, true, true >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, double > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, int32_t > >, std::optional< rmm::device_uvector< int64_t > > > create_graph_from_edgelist< int64_t, int64_t, double, int32_t, int32_t, true, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&vertices, std::vector< rmm::device_uvector< int64_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int64_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< double > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_start_times, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int64_t, int64_t, false, true >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, float > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int64_t > >, std::optional< rmm::device_uvector< int64_t > > > create_graph_from_edgelist< int64_t, int64_t, float, int32_t, int64_t, false, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&vertices, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int64_t, int64_t, true, true >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, float > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, int64_t > >, std::optional< rmm::device_uvector< int64_t > > > create_graph_from_edgelist< int64_t, int64_t, float, int32_t, int64_t, true, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&vertices, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int64_t, int64_t, false, true >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, double > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int64_t > >, std::optional< rmm::device_uvector< int64_t > > > create_graph_from_edgelist< int64_t, int64_t, double, int32_t, int64_t, false, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&vertices, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int64_t, int64_t, true, true >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, double > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, int64_t > >, std::optional< rmm::device_uvector< int64_t > > > create_graph_from_edgelist< int64_t, int64_t, double, int32_t, int64_t, true, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&vertices, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int64_t, int64_t, false, true >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, float > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int64_t > >, std::optional< rmm::device_uvector< int64_t > > > create_graph_from_edgelist< int64_t, int64_t, float, int32_t, int64_t, false, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&vertices, std::vector< rmm::device_uvector< int64_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int64_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< float > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_start_times, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int64_t, int64_t, true, true >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, float > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, int64_t > >, std::optional< rmm::device_uvector< int64_t > > > create_graph_from_edgelist< int64_t, int64_t, float, int32_t, int64_t, true, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&vertices, std::vector< rmm::device_uvector< int64_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int64_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< float > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_start_times, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int64_t, int64_t, false, true >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, double > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int64_t > >, std::optional< rmm::device_uvector< int64_t > > > create_graph_from_edgelist< int64_t, int64_t, double, int32_t, int64_t, false, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&vertices, std::vector< rmm::device_uvector< int64_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int64_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< double > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_start_times, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int64_t, int64_t, true, true >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, double > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, int64_t > >, std::optional< rmm::device_uvector< int64_t > > > create_graph_from_edgelist< int64_t, int64_t, double, int32_t, int64_t, true, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&vertices, std::vector< rmm::device_uvector< int64_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int64_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< double > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_start_times, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int32_t, int32_t, false, false >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, float > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, int32_t > >, std::optional< rmm::device_uvector< int32_t > > > create_graph_from_edgelist< int32_t, int32_t, float, int32_t, false, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&vertices, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int32_t, int32_t, true, false >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, false >, float > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, false >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, false >, int32_t > >, std::optional< rmm::device_uvector< int32_t > > > create_graph_from_edgelist< int32_t, int32_t, float, int32_t, true, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&vertices, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int32_t, int32_t, false, false >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, double > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, int32_t > >, std::optional< rmm::device_uvector< int32_t > > > create_graph_from_edgelist< int32_t, int32_t, double, int32_t, false, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&vertices, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int32_t, int32_t, true, false >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, false >, double > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, false >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, false >, int32_t > >, std::optional< rmm::device_uvector< int32_t > > > create_graph_from_edgelist< int32_t, int32_t, double, int32_t, true, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&vertices, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int32_t, int32_t, false, false >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, float > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, int32_t > >, std::optional< rmm::device_uvector< int32_t > > > create_graph_from_edgelist< int32_t, int32_t, float, int32_t, false, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&vertices, std::vector< rmm::device_uvector< int32_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int32_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< float > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int32_t, int32_t, true, false >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, false >, float > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, false >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, false >, int32_t > >, std::optional< rmm::device_uvector< int32_t > > > create_graph_from_edgelist< int32_t, int32_t, float, int32_t, true, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&vertices, std::vector< rmm::device_uvector< int32_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int32_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< float > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int32_t, int32_t, false, false >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, double > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, int32_t > >, std::optional< rmm::device_uvector< int32_t > > > create_graph_from_edgelist< int32_t, int32_t, double, int32_t, false, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&vertices, std::vector< rmm::device_uvector< int32_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int32_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< double > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int32_t, int32_t, true, false >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, false >, double > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, false >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, false >, int32_t > >, std::optional< rmm::device_uvector< int32_t > > > create_graph_from_edgelist< int32_t, int32_t, double, int32_t, true, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&vertices, std::vector< rmm::device_uvector< int32_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int32_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< double > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< graph_t< int32_t, int32_t, false, false >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, false >, float > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, false >, int32_t > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, false >, int32_t > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, false >, int32_t > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, false >, int32_t > >, std::optional< rmm::device_uvector< int32_t > > > create_graph_from_edgelist< int32_t, int32_t, float, int32_t, int32_t, false, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&vertices, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< graph_t< int32_t, int32_t, true, false >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, false >, float > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, false >, int32_t > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, false >, int32_t > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, false >, int32_t > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, false >, int32_t > >, std::optional< rmm::device_uvector< int32_t > > > create_graph_from_edgelist< int32_t, int32_t, float, int32_t, int32_t, true, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&vertices, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< graph_t< int32_t, int32_t, false, false >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, false >, double > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, false >, int32_t > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, false >, int32_t > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, false >, int32_t > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, false >, int32_t > >, std::optional< rmm::device_uvector< int32_t > > > create_graph_from_edgelist< int32_t, int32_t, double, int32_t, int32_t, false, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&vertices, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< graph_t< int32_t, int32_t, true, false >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, false >, double > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, false >, int32_t > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, false >, int32_t > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, false >, int32_t > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, false >, int32_t > >, std::optional< rmm::device_uvector< int32_t > > > create_graph_from_edgelist< int32_t, int32_t, double, int32_t, int32_t, true, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&vertices, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< graph_t< int32_t, int32_t, false, false >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, false >, float > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, false >, int32_t > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, false >, int32_t > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, false >, int32_t > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, false >, int32_t > >, std::optional< rmm::device_uvector< int32_t > > > create_graph_from_edgelist< int32_t, int32_t, float, int32_t, int32_t, false, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&vertices, std::vector< rmm::device_uvector< int32_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int32_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< float > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_start_times, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< graph_t< int32_t, int32_t, true, false >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, false >, float > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, false >, int32_t > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, false >, int32_t > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, false >, int32_t > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, false >, int32_t > >, std::optional< rmm::device_uvector< int32_t > > > create_graph_from_edgelist< int32_t, int32_t, float, int32_t, int32_t, true, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&vertices, std::vector< rmm::device_uvector< int32_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int32_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< float > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_start_times, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< graph_t< int32_t, int32_t, false, false >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, false >, double > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, false >, int32_t > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, false >, int32_t > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, false >, int32_t > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, false >, int32_t > >, std::optional< rmm::device_uvector< int32_t > > > create_graph_from_edgelist< int32_t, int32_t, double, int32_t, int32_t, false, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&vertices, std::vector< rmm::device_uvector< int32_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int32_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< double > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_start_times, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< graph_t< int32_t, int32_t, true, false >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, false >, double > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, false >, int32_t > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, false >, int32_t > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, false >, int32_t > >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, false >, int32_t > >, std::optional< rmm::device_uvector< int32_t > > > create_graph_from_edgelist< int32_t, int32_t, double, int32_t, int32_t, true, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&vertices, std::vector< rmm::device_uvector< int32_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int32_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< double > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_start_times, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int32_t, int32_t, false, false >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, float > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, int64_t > >, std::optional< rmm::device_uvector< int32_t > > > create_graph_from_edgelist< int32_t, int32_t, float, int32_t, int64_t, false, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&vertices, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int32_t, int32_t, true, false >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, false >, float > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, false >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, false >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, false >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, false >, int64_t > >, std::optional< rmm::device_uvector< int32_t > > > create_graph_from_edgelist< int32_t, int32_t, float, int32_t, int64_t, true, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&vertices, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int32_t, int32_t, false, false >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, double > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, int64_t > >, std::optional< rmm::device_uvector< int32_t > > > create_graph_from_edgelist< int32_t, int32_t, double, int32_t, int64_t, false, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&vertices, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int32_t, int32_t, true, false >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, false >, double > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, false >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, false >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, false >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, false >, int64_t > >, std::optional< rmm::device_uvector< int32_t > > > create_graph_from_edgelist< int32_t, int32_t, double, int32_t, int64_t, true, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&vertices, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int32_t, int32_t, false, false >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, float > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, int64_t > >, std::optional< rmm::device_uvector< int32_t > > > create_graph_from_edgelist< int32_t, int32_t, float, int32_t, int64_t, false, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&vertices, std::vector< rmm::device_uvector< int32_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int32_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< float > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_start_times, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int32_t, int32_t, true, false >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, false >, float > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, false >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, false >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, false >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, false >, int64_t > >, std::optional< rmm::device_uvector< int32_t > > > create_graph_from_edgelist< int32_t, int32_t, float, int32_t, int64_t, true, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&vertices, std::vector< rmm::device_uvector< int32_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int32_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< float > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_start_times, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int32_t, int32_t, false, false >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, double > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, int64_t > >, std::optional< rmm::device_uvector< int32_t > > > create_graph_from_edgelist< int32_t, int32_t, double, int32_t, int64_t, false, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&vertices, std::vector< rmm::device_uvector< int32_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int32_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< double > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_start_times, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int32_t, int32_t, true, false >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, false >, double > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, false >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, false >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, false >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, false >, int64_t > >, std::optional< rmm::device_uvector< int32_t > > > create_graph_from_edgelist< int32_t, int32_t, double, int32_t, int64_t, true, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&vertices, std::vector< rmm::device_uvector< int32_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int32_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< double > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_start_times, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int64_t, int64_t, false, false >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, float > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int32_t > >, std::optional< rmm::device_uvector< int64_t > > > create_graph_from_edgelist< int64_t, int64_t, float, int32_t, false, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&vertices, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int64_t, int64_t, true, false >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, float > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, int32_t > >, std::optional< rmm::device_uvector< int64_t > > > create_graph_from_edgelist< int64_t, int64_t, float, int32_t, true, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&vertices, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int64_t, int64_t, false, false >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, double > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int32_t > >, std::optional< rmm::device_uvector< int64_t > > > create_graph_from_edgelist< int64_t, int64_t, double, int32_t, false, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&vertices, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int64_t, int64_t, true, false >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, double > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, int32_t > >, std::optional< rmm::device_uvector< int64_t > > > create_graph_from_edgelist< int64_t, int64_t, double, int32_t, true, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&vertices, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int64_t, int64_t, false, false >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, float > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int32_t > >, std::optional< rmm::device_uvector< int64_t > > > create_graph_from_edgelist< int64_t, int64_t, float, int32_t, false, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&vertices, std::vector< rmm::device_uvector< int64_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int64_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< float > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int64_t, int64_t, true, false >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, float > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, int32_t > >, std::optional< rmm::device_uvector< int64_t > > > create_graph_from_edgelist< int64_t, int64_t, float, int32_t, true, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&vertices, std::vector< rmm::device_uvector< int64_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int64_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< float > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int64_t, int64_t, false, false >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, double > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int32_t > >, std::optional< rmm::device_uvector< int64_t > > > create_graph_from_edgelist< int64_t, int64_t, double, int32_t, false, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&vertices, std::vector< rmm::device_uvector< int64_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int64_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< double > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int64_t, int64_t, true, false >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, double > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, int32_t > >, std::optional< rmm::device_uvector< int64_t > > > create_graph_from_edgelist< int64_t, int64_t, double, int32_t, true, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&vertices, std::vector< rmm::device_uvector< int64_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int64_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< double > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int64_t, int64_t, false, false >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, float > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int32_t > >, std::optional< rmm::device_uvector< int64_t > > > create_graph_from_edgelist< int64_t, int64_t, float, int32_t, int32_t, false, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&vertices, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int64_t, int64_t, true, false >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, float > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, int32_t > >, std::optional< rmm::device_uvector< int64_t > > > create_graph_from_edgelist< int64_t, int64_t, float, int32_t, int32_t, true, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&vertices, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int64_t, int64_t, false, false >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, double > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int32_t > >, std::optional< rmm::device_uvector< int64_t > > > create_graph_from_edgelist< int64_t, int64_t, double, int32_t, int32_t, false, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&vertices, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int64_t, int64_t, true, false >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, float > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, int32_t > >, std::optional< rmm::device_uvector< int64_t > > > create_graph_from_edgelist< int64_t, int64_t, double, int32_t, int32_t, true, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&vertices, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int64_t, int64_t, false, false >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, float > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int32_t > >, std::optional< rmm::device_uvector< int64_t > > > create_graph_from_edgelist< int64_t, int64_t, float, int32_t, int32_t, false, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&vertices, std::vector< rmm::device_uvector< int64_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int64_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< float > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_start_times, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int64_t, int64_t, true, false >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, float > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, int32_t > >, std::optional< rmm::device_uvector< int64_t > > > create_graph_from_edgelist< int64_t, int64_t, float, int32_t, int32_t, true, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&vertices, std::vector< rmm::device_uvector< int64_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int64_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< float > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_start_times, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int64_t, int64_t, false, false >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, double > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int32_t > >, std::optional< rmm::device_uvector< int64_t > > > create_graph_from_edgelist< int64_t, int64_t, double, int32_t, int32_t, false, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&vertices, std::vector< rmm::device_uvector< int64_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int64_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< double > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_start_times, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
template std::tuple< cugraph::graph_t< int64_t, int64_t, true, false >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, double > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, int32_t > >, std::optional< rmm::device_uvector< int64_t > > > create_graph_from_edgelist< int64_t, int64_t, double, int32_t, int32_t, true, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&vertices, std::vector< rmm::device_uvector< int64_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int64_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< double > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_start_times, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
模板 std::tuple< cugraph::graph_t< int64_t, int64_t, false, false >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, float > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int64_t > >, std::optional< rmm::device_uvector< int64_t > > > create_graph_from_edgelist< int64_t, int64_t, float, int32_t, int64_t, false, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&vertices, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
模板 std::tuple< cugraph::graph_t< int64_t, int64_t, true, false >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, float > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, int64_t > >, std::optional< rmm::device_uvector< int64_t > > > create_graph_from_edgelist< int64_t, int64_t, float, int32_t, int64_t, true, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&vertices, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
模板 std::tuple< cugraph::graph_t< int64_t, int64_t, false, false >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, double > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int64_t > >, std::optional< rmm::device_uvector< int64_t > > > create_graph_from_edgelist< int64_t, int64_t, double, int32_t, int64_t, false, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&vertices, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
模板 std::tuple< cugraph::graph_t< int64_t, int64_t, true, false >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, double > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, int64_t > >, std::optional< rmm::device_uvector< int64_t > > > create_graph_from_edgelist< int64_t, int64_t, double, int32_t, int64_t, true, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&vertices, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
模板 std::tuple< cugraph::graph_t< int64_t, int64_t, false, false >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, float > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int64_t > >, std::optional< rmm::device_uvector< int64_t > > > create_graph_from_edgelist< int64_t, int64_t, float, int32_t, int64_t, false, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&vertices, std::vector< rmm::device_uvector< int64_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int64_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< float > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_start_times, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
模板 std::tuple< cugraph::graph_t< int64_t, int64_t, true, false >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, float > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, int64_t > >, std::optional< rmm::device_uvector< int64_t > > > create_graph_from_edgelist< int64_t, int64_t, float, int32_t, int64_t, true, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&vertices, std::vector< rmm::device_uvector< int64_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int64_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< float > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_start_times, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
模板 std::tuple< cugraph::graph_t< int64_t, int64_t, false, false >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, double > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int64_t > >, std::optional< rmm::device_uvector< int64_t > > > create_graph_from_edgelist< int64_t, int64_t, double, int32_t, int64_t, false, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&vertices, std::vector< rmm::device_uvector< int64_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int64_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< double > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_start_times, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
模板 std::tuple< cugraph::graph_t< int64_t, int64_t, true, false >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, double > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, int32_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, int64_t > >, std::optional< cugraph::edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, int64_t > >, std::optional< rmm::device_uvector< int64_t > > > create_graph_from_edgelist< int64_t, int64_t, double, int32_t, int64_t, true, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&vertices, std::vector< rmm::device_uvector< int64_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int64_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< double > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_start_times, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_end_times, graph_properties_t graph_properties, bool renumber, bool do_expensive_check)
模板 std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > > > decompress_to_edgelist< int32_t, int32_t, float, int32_t, false, true > (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_id_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_type_view, std::optional< raft::device_span< int32_t const > > renumber_map, bool do_expensive_check)
模板 std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > > > decompress_to_edgelist< int32_t, int32_t, float, int32_t, true, true > (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, true > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_id_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_type_view, std::optional< raft::device_span< int32_t const > > renumber_map, bool do_expensive_check)
模板 std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > > > decompress_to_edgelist< int32_t, int32_t, double, int32_t, false, true > (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_id_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_type_view, std::optional< raft::device_span< int32_t const > > renumber_map, bool do_expensive_check)
模板 std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > > > decompress_to_edgelist< int32_t, int32_t, double, int32_t, true, true > (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, true > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_id_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_type_view, std::optional< raft::device_span< int32_t const > > renumber_map, bool do_expensive_check)
模板 std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > > > decompress_to_edgelist< int64_t, int64_t, float, int32_t, false, true > (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, std::optional< edge_property_view_t< int64_t, int64_t const * > > edge_id_view, std::optional< edge_property_view_t< int64_t, int32_t const * > > edge_type_view, std::optional< raft::device_span< int64_t const > > renumber_map, bool do_expensive_check)
模板 std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > > > decompress_to_edgelist< int64_t, int64_t, float, int32_t, true, true > (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, true > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, std::optional< edge_property_view_t< int64_t, int64_t const * > > edge_id_view, std::optional< edge_property_view_t< int64_t, int32_t const * > > edge_type_view, std::optional< raft::device_span< int64_t const > > renumber_map, bool do_expensive_check)
模板 std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > > > decompress_to_edgelist< int64_t, int64_t, double, int32_t, false, true > (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, std::optional< edge_property_view_t< int64_t, int64_t const * > > edge_id_view, std::optional< edge_property_view_t< int64_t, int32_t const * > > edge_type_view, std::optional< raft::device_span< int64_t const > > renumber_map, bool do_expensive_check)
模板 std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > > > decompress_to_edgelist< int64_t, int64_t, double, int32_t, true, true > (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, true > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, std::optional< edge_property_view_t< int64_t, int64_t const * > > edge_id_view, std::optional< edge_property_view_t< int64_t, int32_t const * > > edge_type_view, std::optional< raft::device_span< int64_t const > > renumber_map, bool do_expensive_check)
模板 std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > > > decompress_to_edgelist< int32_t, int32_t, float, int32_t, false, false > (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_id_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_type_view, std::optional< raft::device_span< int32_t const > > renumber_map, bool do_expensive_check)
模板 std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > > > decompress_to_edgelist< int32_t, int32_t, float, int32_t, true, false > (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, false > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_id_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_type_view, std::optional< raft::device_span< int32_t const > > renumber_map, bool do_expensive_check)
模板 std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > > > decompress_to_edgelist< int32_t, int32_t, double, int32_t, false, false > (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_id_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_type_view, std::optional< raft::device_span< int32_t const > > renumber_map, bool do_expensive_check)
模板 std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > > > decompress_to_edgelist< int32_t, int32_t, double, int32_t, true, false > (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, false > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_id_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_type_view, std::optional< raft::device_span< int32_t const > > renumber_map, bool do_expensive_check)
模板 std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > > > decompress_to_edgelist< int64_t, int64_t, float, int32_t, false, false > (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, std::optional< edge_property_view_t< int64_t, int64_t const * > > edge_id_view, std::optional< edge_property_view_t< int64_t, int32_t const * > > edge_type_view, std::optional< raft::device_span< int64_t const > > renumber_map, bool do_expensive_check)
模板 std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > > > decompress_to_edgelist< int64_t, int64_t, float, int32_t, true, false > (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, false > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, std::optional< edge_property_view_t< int64_t, int64_t const * > > edge_id_view, std::optional< edge_property_view_t< int64_t, int32_t const * > > edge_type_view, std::optional< raft::device_span< int64_t const > > renumber_map, bool do_expensive_check)
模板 std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > > > decompress_to_edgelist< int64_t, int64_t, double, int32_t, false, false > (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, std::optional< edge_property_view_t< int64_t, int64_t const * > > edge_id_view, std::optional< edge_property_view_t< int64_t, int32_t const * > > edge_type_view, std::optional< raft::device_span< int64_t const > > renumber_map, bool do_expensive_check)
模板 std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > > > decompress_to_edgelist< int64_t, int64_t, double, int32_t, true, false > (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, false > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, std::optional< edge_property_view_t< int64_t, int64_t const * > > edge_id_view, std::optional< edge_property_view_t< int64_t, int32_t const * > > edge_type_view, std::optional< raft::device_span< int64_t const > > renumber_map, bool do_expensive_check)
模板 rmm::device_uvector< float > compute_in_weight_sums< int32_t, int32_t, float, false, true > (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, edge_property_view_t< int32_t, float const * > > edge_weight_view)
模板 rmm::device_uvector< float > compute_in_weight_sums< int32_t, int32_t, float, true, true > (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, true > const &graph_view, edge_property_view_t< int32_t, float const * > > edge_weight_view)
template rmm::device_uvector< double > 计算入权重和< int32_t, int32_t, double, false, true > (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, edge_property_view_t< int32_t, double const * > edge_weight_view)
template rmm::device_uvector< double > 计算入权重和< int32_t, int32_t, double, true, true > (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, true > const &graph_view, edge_property_view_t< int32_t, double const * > edge_weight_view)
template rmm::device_uvector< float > 计算出权重和< int32_t, int32_t, float, false, true > (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, edge_property_view_t< int32_t, float const * > edge_weight_view)
template rmm::device_uvector< float > 计算出权重和< int32_t, int32_t, float, true, true > (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, true > const &graph_view, edge_property_view_t< int32_t, float const * > edge_weight_view)
template rmm::device_uvector< double > 计算出权重和< int32_t, int32_t, double, false, true > (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, edge_property_view_t< int32_t, double const * > edge_weight_view)
template rmm::device_uvector< double > 计算出权重和< int32_t, int32_t, double, true, true > (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, true > const &graph_view, edge_property_view_t< int32_t, double const * > edge_weight_view)
template float 计算最大入权重和< int32_t, int32_t, float, false, true > (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, edge_property_view_t< int32_t, float const * > edge_weight_view)
template float 计算最大入权重和< int32_t, int32_t, float, true, true > (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, true > const &graph_view, edge_property_view_t< int32_t, float const * > edge_weight_view)
template double 计算最大入权重和< int32_t, int32_t, double, false, true > (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, edge_property_view_t< int32_t, double const * > edge_weight_view)
template double 计算最大入权重和< int32_t, int32_t, double, true, true > (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, true > const &graph_view, edge_property_view_t< int32_t, double const * > edge_weight_view)
template float 计算最大出权重和< int32_t, int32_t, float, false, true > (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, edge_property_view_t< int32_t, float const * > edge_weight_view)
template float 计算最大出权重和< int32_t, int32_t, float, true, true > (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, true > const &graph_view, edge_property_view_t< int32_t, float const * > edge_weight_view)
template double 计算最大出权重和< int32_t, int32_t, double, false, true > (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, edge_property_view_t< int32_t, double const * > edge_weight_view)
template double 计算最大出权重和< int32_t, int32_t, double, true, true > (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, true > const &graph_view, edge_property_view_t< int32_t, double const * > edge_weight_view)
template float 计算总边权重< int32_t, int32_t, float, false, true > (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, edge_property_view_t< int32_t, float const * > edge_weight_view)
template float 计算总边权重< int32_t, int32_t, float, true, true > (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, true > const &graph_view, edge_property_view_t< int32_t, float const * > edge_weight_view)
template double 计算总边权重< int32_t, int32_t, double, false, true > (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, edge_property_view_t< int32_t, double const * > edge_weight_view)
template double 计算总边权重< int32_t, int32_t, double, true, true > (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, true > const &graph_view, edge_property_view_t< int32_t, double const * > edge_weight_view)
template rmm::device_uvector< float > 计算入权重和< int64_t, int64_t, float, false, true > (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, edge_property_view_t< int64_t, float const * > edge_weight_view)
template rmm::device_uvector< float > 计算入权重和< int64_t, int64_t, float, true, true > (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, true > const &graph_view, edge_property_view_t< int64_t, float const * > edge_weight_view)
template rmm::device_uvector< double > 计算入权重和< int64_t, int64_t, double, false, true > (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, edge_property_view_t< int64_t, double const * > edge_weight_view)
template rmm::device_uvector< double > 计算入权重和< int64_t, int64_t, double, true, true > (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, true > const &graph_view, edge_property_view_t< int64_t, double const * > edge_weight_view)
template rmm::device_uvector< float > 计算出权重和< int64_t, int64_t, float, false, true > (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, edge_property_view_t< int64_t, float const * > edge_weight_view)
template rmm::device_uvector< float > 计算出权重和< int64_t, int64_t, float, true, true > (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, true > const &graph_view, edge_property_view_t< int64_t, float const * > edge_weight_view)
template rmm::device_uvector< double > 计算出权重和< int64_t, int64_t, double, false, true > (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, edge_property_view_t< int64_t, double const * > edge_weight_view)
template rmm::device_uvector< double > 计算出权重和< int64_t, int64_t, double, true, true > (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, true > const &graph_view, edge_property_view_t< int64_t, double const * > edge_weight_view)
template float 计算最大入权重和< int64_t, int64_t, float, false, true > (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, edge_property_view_t< int64_t, float const * > edge_weight_view)
template float 计算最大入权重和< int64_t, int64_t, float, true, true > (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, true > const &graph_view, edge_property_view_t< int64_t, float const * > edge_weight_view)
template double 计算最大入权重和< int64_t, int64_t, double, false, true > (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, edge_property_view_t< int64_t, double const * > edge_weight_view)
template double 计算最大入权重和< int64_t, int64_t, double, true, true > (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, true > const &graph_view, edge_property_view_t< int64_t, double const * > edge_weight_view)
template float 计算最大出权重和< int64_t, int64_t, float, false, true > (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, edge_property_view_t< int64_t, float const * > edge_weight_view)
template float 计算最大出权重和< int64_t, int64_t, float, true, true > (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, true > const &graph_view, edge_property_view_t< int64_t, float const * > edge_weight_view)
template double 计算最大出权重和< int64_t, int64_t, double, false, true > (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, edge_property_view_t< int64_t, double const * > edge_weight_view)
template double 计算最大出权重和< int64_t, int64_t, double, true, true > (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, true > const &graph_view, edge_property_view_t< int64_t, double const * > edge_weight_view)
template float 计算总边权重< int64_t, int64_t, float, false, true > (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, edge_property_view_t< int64_t, float const * > edge_weight_view)
template float 计算总边权重< int64_t, int64_t, float, true, true > (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, true > const &graph_view, edge_property_view_t< int64_t, float const * > edge_weight_view)
template double 计算总边权重< int64_t, int64_t, double, false, true > (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, edge_property_view_t< int64_t, double const * > edge_weight_view)
template double 计算总边权重< int64_t, int64_t, double, true, true > (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, true > const &graph_view, edge_property_view_t< int64_t, double const * > edge_weight_view)
template rmm::device_uvector< float > 计算入权重和< int32_t, int32_t, float, false, false > (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, edge_property_view_t< int32_t, float const * > edge_weight_view)
template rmm::device_uvector< float > 计算入权重和< int32_t, int32_t, float, true, false > (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, false > const &graph_view, edge_property_view_t< int32_t, float const * > edge_weight_view)
template rmm::device_uvector< double > 计算入权重和< int32_t, int32_t, double, false, false > (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, edge_property_view_t< int32_t, double const * > edge_weight_view)
template rmm::device_uvector< double > 计算入权重和< int32_t, int32_t, double, true, false > (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, false > const &graph_view, edge_property_view_t< int32_t, double const * > edge_weight_view)
template rmm::device_uvector< float > 计算出权重和< int32_t, int32_t, float, false, false > (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, edge_property_view_t< int32_t, float const * > edge_weight_view)
template rmm::device_uvector< float > 计算出权重和< int32_t, int32_t, float, true, false > (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, false > const &graph_view, edge_property_view_t< int32_t, float const * > edge_weight_view)
template rmm::device_uvector< double > 计算出权重和< int32_t, int32_t, double, false, false > (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, edge_property_view_t< int32_t, double const * > edge_weight_view)
template rmm::device_uvector< double > 计算出权重和< int32_t, int32_t, double, true, false > (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, false > const &graph_view, edge_property_view_t< int32_t, double const * > edge_weight_view)
template float 计算最大入权重和< int32_t, int32_t, float, false, false > (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, edge_property_view_t< int32_t, float const * > edge_weight_view)
template float 计算最大入权重和< int32_t, int32_t, float, true, false > (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, false > const &graph_view, edge_property_view_t< int32_t, float const * > edge_weight_view)
template double 计算最大入权重和< int32_t, int32_t, double, false, false > (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, edge_property_view_t< int32_t, double const * > edge_weight_view)
template double 计算最大入权重和< int32_t, int32_t, double, true, false > (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, false > const &graph_view, edge_property_view_t< int32_t, double const * > edge_weight_view)
template float 计算最大出权重和< int32_t, int32_t, float, false, false > (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, edge_property_view_t< int32_t, float const * > edge_weight_view)
template float 计算最大出权重和< int32_t, int32_t, float, true, false > (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, false > const &graph_view, edge_property_view_t< int32_t, float const * > edge_weight_view)
template double 计算最大出权重和< int32_t, int32_t, double, false, false > (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, edge_property_view_t< int32_t, double const * > edge_weight_view)
template double 计算最大出权重和< int32_t, int32_t, double, true, false > (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, false > const &graph_view, edge_property_view_t< int32_t, double const * > edge_weight_view)
template float 计算总边权重< int32_t, int32_t, float, false, false > (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, edge_property_view_t< int32_t, float const * > edge_weight_view)
template float 计算总边权重< int32_t, int32_t, float, true, false > (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, false > const &graph_view, edge_property_view_t< int32_t, float const * > edge_weight_view)
template double 计算总边权重< int32_t, int32_t, double, false, false > (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, edge_property_view_t< int32_t, double const * > edge_weight_view)
template double 计算总边权重< int32_t, int32_t, double, true, false > (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, false > const &graph_view, edge_property_view_t< int32_t, double const * > edge_weight_view)
template rmm::device_uvector< float > 计算入权重和< int64_t, int64_t, float, false, false > (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, edge_property_view_t< int64_t, float const * > edge_weight_view)
template rmm::device_uvector< float > 计算入权重和< int64_t, int64_t, float, true, false > (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, false > const &graph_view, edge_property_view_t< int64_t, float const * > edge_weight_view)
template rmm::device_uvector< double > 计算入权重和< int64_t, int64_t, double, false, false > (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, edge_property_view_t< int64_t, double const * > edge_weight_view)
template rmm::device_uvector< double > 计算入权重和< int64_t, int64_t, double, true, false > (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, false > const &graph_view, edge_property_view_t< int64_t, double const * > edge_weight_view)
template rmm::device_uvector< float > 计算出权重和< int64_t, int64_t, float, false, false > (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, edge_property_view_t< int64_t, float const * > edge_weight_view)
template rmm::device_uvector< float > 计算出权重和< int64_t, int64_t, float, true, false > (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, false > const &graph_view, edge_property_view_t< int64_t, float const * > edge_weight_view)
template rmm::device_uvector< double > 计算出权重和< int64_t, int64_t, double, false, false > (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, edge_property_view_t< int64_t, double const * > edge_weight_view)
template rmm::device_uvector< double > 计算出权重和< int64_t, int64_t, double, true, false > (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, false > const &graph_view, edge_property_view_t< int64_t, double const * > edge_weight_view)
template float 计算最大入权重和< int64_t, int64_t, float, false, false > (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, edge_property_view_t< int64_t, float const * > edge_weight_view)
template float 计算最大入权重和< int64_t, int64_t, float, true, false > (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, false > const &graph_view, edge_property_view_t< int64_t, float const * > edge_weight_view)
template double 计算最大入权重和< int64_t, int64_t, double, false, false > (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, edge_property_view_t< int64_t, double const * > edge_weight_view)
template double 计算最大入权重和< int64_t, int64_t, double, true, false > (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, false > const &graph_view, edge_property_view_t< int64_t, double const * > edge_weight_view)
template float 计算最大出权重和< int64_t, int64_t, float, false, false > (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, edge_property_view_t< int64_t, float const * > edge_weight_view)
template float 计算最大出权重和< int64_t, int64_t, float, true, false > (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, false > const &graph_view, edge_property_view_t< int64_t, float const * > edge_weight_view)
template double 计算最大出权重和< int64_t, int64_t, double, false, false > (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, edge_property_view_t< int64_t, double const * > edge_weight_view)
template double 计算最大出权重和< int64_t, int64_t, double, true, false > (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, false > const &graph_view, edge_property_view_t< int64_t, double const * > edge_weight_view)
template float 计算总边权重< int64_t, int64_t, float, false, false > (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, edge_property_view_t< int64_t, float const * > edge_weight_view)
template float 计算总边权重< int64_t, int64_t, float, true, false > (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, false > const &graph_view, edge_property_view_t< int64_t, float const * > edge_weight_view)
template double 计算总边权重< int64_t, int64_t, double, false, false > (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, edge_property_view_t< int64_t, double const * > edge_weight_view)
template double compute_total_edge_weight< int64_t, int64_t, double, true, false > (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, false > const &graph_view, edge_property_view_t< int64_t, double const * > edge_weight_view)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > >, rmm::device_uvector< size_t > > extract_induced_subgraphs (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, raft::device_span< size_t const > subgraph_offsets, raft::device_span< int32_t const > subgraph_vertices, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > >, rmm::device_uvector< size_t > > extract_induced_subgraphs (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, raft::device_span< size_t const > subgraph_offsets, raft::device_span< int32_t const > subgraph_vertices, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > >, rmm::device_uvector< size_t > > extract_induced_subgraphs (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, raft::device_span< size_t const > subgraph_offsets, raft::device_span< int64_t const > subgraph_vertices, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > >, rmm::device_uvector< size_t > > extract_induced_subgraphs (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, raft::device_span< size_t const > subgraph_offsets, raft::device_span< int64_t const > subgraph_vertices, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > >, rmm::device_uvector< size_t > > extract_induced_subgraphs (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, raft::device_span< size_t const > subgraph_offsets, raft::device_span< int32_t const > subgraph_vertices, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > >, rmm::device_uvector< size_t > > extract_induced_subgraphs (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, raft::device_span< size_t const > subgraph_offsets, raft::device_span< int32_t const > subgraph_vertices, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > >, rmm::device_uvector< size_t > > extract_induced_subgraphs (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, raft::device_span< size_t const > subgraph_offsets, raft::device_span< int64_t const > subgraph_vertices, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > >, rmm::device_uvector< size_t > > extract_induced_subgraphs (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, raft::device_span< size_t const > subgraph_offsets, raft::device_span< int64_t const > subgraph_vertices, bool do_expensive_check)
template void relabel< int32_t, true > (raft::handle_t const &handle, std::tuple< int32_t const *, int32_t const * > old_new_label_pairs, int32_t num_label_pairs, int32_t *labels, int32_t num_labels, bool skip_missing_labels, bool do_expensive_check)
template void relabel< int64_t, true > (raft::handle_t const &handle, std::tuple< int64_t const *, int64_t const * > old_new_label_pairs, int64_t num_label_pairs, int64_t *labels, int64_t num_labels, bool skip_missing_labels, bool do_expensive_check)
template void relabel< int32_t, false > (raft::handle_t const &handle, std::tuple< int32_t const *, int32_t const * > old_new_label_pairs, int32_t num_label_pairs, int32_t *labels, int32_t num_labels, bool skip_missing_labels, bool do_expensive_check)
template void relabel< int64_t, false > (raft::handle_t const &handle, std::tuple< int64_t const *, int64_t const * > old_new_label_pairs, int64_t num_label_pairs, int64_t *labels, int64_t num_labels, bool skip_missing_labels, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > > > remove_multi_edges (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_end_times, bool keep_min_value_edge)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > > > remove_multi_edges (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_end_times, bool keep_min_value_edge)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int64_t > > > remove_multi_edges (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_end_times, bool keep_min_value_edge)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int64_t > > > remove_multi_edges (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_end_times, bool keep_min_value_edge)
template std::tuple< std::vector< rmm::device_uvector< int32_t > >, std::vector< rmm::device_uvector< int32_t > >, std::optional< std::vector< rmm::device_uvector< float > > >, std::optional< std::vector< rmm::device_uvector< int32_t > > >, std::optional< std::vector< rmm::device_uvector< int32_t > > >, std::optional< std::vector< rmm::device_uvector< int32_t > > >, std::optional< std::vector< rmm::device_uvector< int32_t > > > > remove_multi_edges (raft::handle_t const &handle, std::vector< rmm::device_uvector< int32_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int32_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< float > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_start_times, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_end_times, bool keep_min_value_edge)
template std::tuple< std::vector< rmm::device_uvector< int32_t > >, std::vector< rmm::device_uvector< int32_t > >, std::optional< std::vector< rmm::device_uvector< double > > >, std::optional< std::vector< rmm::device_uvector< int32_t > > >, std::optional< std::vector< rmm::device_uvector< int32_t > > >, std::optional< std::vector< rmm::device_uvector< int32_t > > >, std::optional< std::vector< rmm::device_uvector< int32_t > > > > remove_multi_edges (raft::handle_t const &handle, std::vector< rmm::device_uvector< int32_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int32_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< double > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_start_times, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_end_times, bool keep_min_value_edge)
template std::tuple< std::vector< rmm::device_uvector< int32_t > >, std::vector< rmm::device_uvector< int32_t > >, std::optional< std::vector< rmm::device_uvector< float > > >, std::optional< std::vector< rmm::device_uvector< int32_t > > >, std::optional< std::vector< rmm::device_uvector< int32_t > > >, std::optional< std::vector< rmm::device_uvector< int64_t > > >, std::optional< std::vector< rmm::device_uvector< int64_t > > > > remove_multi_edges (raft::handle_t const &handle, std::vector< rmm::device_uvector< int32_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int32_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< float > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_start_times, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_end_times, bool keep_min_value_edge)
template std::tuple< std::vector< rmm::device_uvector< int32_t > >, std::vector< rmm::device_uvector< int32_t > >, std::optional< std::vector< rmm::device_uvector< double > > >, std::optional< std::vector< rmm::device_uvector< int32_t > > >, std::optional< std::vector< rmm::device_uvector< int32_t > > >, std::optional< std::vector< rmm::device_uvector< int64_t > > >, std::optional< std::vector< rmm::device_uvector< int64_t > > > > remove_multi_edges (raft::handle_t const &handle, std::vector< rmm::device_uvector< int32_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int32_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< double > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_start_times, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_end_times, bool keep_min_value_edge)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > > > remove_multi_edges (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_end_times, bool keep_min_value_edge)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > > > remove_multi_edges (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_end_times, bool keep_min_value_edge)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int64_t > > > remove_multi_edges (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_end_times, bool keep_min_value_edge)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int64_t > > > remove_multi_edges (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_end_times, bool keep_min_value_edge)
template std::tuple< std::vector< rmm::device_uvector< int64_t > >, std::vector< rmm::device_uvector< int64_t > >, std::optional< std::vector< rmm::device_uvector< float > > >, std::optional< std::vector< rmm::device_uvector< int64_t > > >, std::optional< std::vector< rmm::device_uvector< int32_t > > >, std::optional< std::vector< rmm::device_uvector< int32_t > > >, std::optional< std::vector< rmm::device_uvector< int32_t > > > > remove_multi_edges (raft::handle_t const &handle, std::vector< rmm::device_uvector< int64_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int64_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< double > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_start_times, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_end_times, bool keep_min_value_edge)
template std::tuple< std::vector< rmm::device_uvector< int64_t > >, std::vector< rmm::device_uvector< int64_t > >, std::optional< std::vector< rmm::device_uvector< double > > >, std::optional< std::vector< rmm::device_uvector< int64_t > > >, std::optional< std::vector< rmm::device_uvector< int32_t > > >, std::optional< std::vector< rmm::device_uvector< int32_t > > >, std::optional< std::vector< rmm::device_uvector< int32_t > > > > remove_multi_edges (raft::handle_t const &handle, std::vector< rmm::device_uvector< int64_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int64_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< double > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_start_times, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_end_times, bool keep_min_value_edge)
template std::tuple< std::vector< rmm::device_uvector< int64_t > >, std::vector< rmm::device_uvector< int64_t > >, std::optional< std::vector< rmm::device_uvector< float > > >, std::optional< std::vector< rmm::device_uvector< int64_t > > >, std::optional< std::vector< rmm::device_uvector< int32_t > > >, std::optional< std::vector< rmm::device_uvector< int64_t > > >, std::optional< std::vector< rmm::device_uvector< int64_t > > > > remove_multi_edges (raft::handle_t const &handle, std::vector< rmm::device_uvector< int64_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int64_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< double > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_start_times, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_end_times, bool keep_min_value_edge)
template std::tuple< std::vector< rmm::device_uvector< int64_t > >, std::vector< rmm::device_uvector< int64_t > >, std::optional< std::vector< rmm::device_uvector< double > > >, std::optional< std::vector< rmm::device_uvector< int64_t > > >, std::optional< std::vector< rmm::device_uvector< int32_t > > >, std::optional< std::vector< rmm::device_uvector< int64_t > > >, std::optional< std::vector< rmm::device_uvector< int64_t > > > > remove_multi_edges (raft::handle_t const &handle, std::vector< rmm::device_uvector< int64_t > > &&edgelist_srcs, std::vector< rmm::device_uvector< int64_t > > &&edgelist_dsts, std::optional< std::vector< rmm::device_uvector< double > > > &&edgelist_weights, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_ids, std::optional< std::vector< rmm::device_uvector< int32_t > > > &&edgelist_edge_types, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_start_times, std::optional< std::vector< rmm::device_uvector< int64_t > > > &&edgelist_edge_end_times, bool keep_min_value_edge)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > > > remove_self_loops (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_end_times)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > > > remove_self_loops (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_end_times)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int64_t > > > remove_self_loops (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_end_times)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int64_t > > > remove_self_loops (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_end_times)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > > > remove_self_loops (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_end_times)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > > > remove_self_loops (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_end_times)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int64_t > > > remove_self_loops (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_end_times)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int64_t > > > remove_self_loops (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_end_times)
template std::tuple< rmm::device_uvector< int32_t >, renumber_meta_t< int32_t, int32_t, true > > renumber_edgelist< int32_t, int32_t, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&local_vertices, std::vector< int32_t * > const &edgelist_srcs, std::vector< int32_t * > const &edgelist_dsts, std::vector< int32_t > const &edgelist_edge_counts, std::optional< std::vector< std::vector< int32_t > > > const &edgelist_intra_partition_segment_offsets, bool store_transposed, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, renumber_meta_t< int64_t, int64_t, true > > renumber_edgelist< int64_t, int64_t, true > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&local_vertices, std::vector< int64_t * > const &edgelist_srcs, std::vector< int64_t * > const &edgelist_dsts, std::vector< int64_t > const &edgelist_edge_counts, std::optional< std::vector< std::vector< int64_t > > > const &edgelist_intra_partition_segment_offsets, bool store_transposed, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, renumber_meta_t< int32_t, int32_t, false > > renumber_edgelist< int32_t, int32_t, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int32_t > > &&vertices, int32_t *edgelist_srcs, int32_t *edgelist_dsts, int32_t num_edgelist_edges, bool store_transposed, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, renumber_meta_t< int64_t, int64_t, false > > renumber_edgelist< int64_t, int64_t, false > (raft::handle_t const &handle, std::optional< rmm::device_uvector< int64_t > > &&vertices, int64_t *edgelist_srcs, int64_t *edgelist_dsts, int64_t num_edgelist_edges, bool store_transposed, bool do_expensive_check)
template void renumber_ext_vertices< int32_t, true > (raft::handle_t const &handle, int32_t *vertices, size_t num_vertices, int32_t const *renumber_map_labels, int32_t local_int_vertex_first, int32_t local_int_vertex_last, bool do_expensive_check)
template void renumber_local_ext_vertices< int32_t, true > (raft::handle_t const &handle, int32_t *vertices, size_t num_vertices, int32_t const *renumber_map_labels, int32_t local_int_vertex_first, int32_t local_int_vertex_last, bool do_expensive_check)
template void unrenumber_int_vertices< int32_t, true > (raft::handle_t const &handle, int32_t *vertices, size_t num_vertices, int32_t const *renumber_map_labels, raft::host_span< int32_t const > vertex_partition_range_lasts, bool do_expensive_check)
template void unrenumber_local_int_edges< int32_t, false, true > (raft::handle_t const &handle, std::vector< int32_t * > const &edgelist_srcs, std::vector< int32_t * > const &edgelist_dsts, std::vector< size_t > const &edgelist_edge_counts, int32_t const *renumber_map_labels, raft::host_span< int32_t const > vertex_partition_range_lasts, std::optional< std::vector< std::vector< size_t > > > const &edgelist_intra_partition_segment_offsets, bool do_expensive_check)
template void unrenumber_local_int_edges< int32_t, true, true > (raft::handle_t const &handle, std::vector< int32_t * > const &edgelist_srcs, std::vector< int32_t * > const &edgelist_dsts, std::vector< size_t > const &edgelist_edge_counts, int32_t const *renumber_map_labels, raft::host_span< int32_t const > vertex_partition_range_lasts, std::optional< std::vector< std::vector< size_t > > > const &edgelist_intra_partition_segment_offsets, bool do_expensive_check)
template void renumber_ext_vertices< int64_t, true > (raft::handle_t const &handle, int64_t *vertices, size_t num_vertices, int64_t const *renumber_map_labels, int64_t local_int_vertex_first, int64_t local_int_vertex_last, bool do_expensive_check)
template void renumber_local_ext_vertices< int64_t, true > (raft::handle_t const &handle, int64_t *vertices, size_t num_vertices, int64_t const *renumber_map_labels, int64_t local_int_vertex_first, int64_t local_int_vertex_last, bool do_expensive_check)
template void unrenumber_int_vertices< int64_t, true > (raft::handle_t const &handle, int64_t *vertices, size_t num_vertices, int64_t const *renumber_map_labels, raft::host_span< int64_t const > vertex_partition_range_lasts, bool do_expensive_check)
template void unrenumber_local_int_edges< int64_t, false, true > (raft::handle_t const &handle, std::vector< int64_t * > const &edgelist_srcs, std::vector< int64_t * > const &edgelist_dsts, std::vector< size_t > const &edgelist_edge_counts, int64_t const *renumber_map_labels, raft::host_span< int64_t const > vertex_partition_range_lasts, std::optional< std::vector< std::vector< size_t > > > const &edgelist_intra_partition_segment_offsets, bool do_expensive_check)
template void unrenumber_local_int_edges< int64_t, true, true > (raft::handle_t const &handle, std::vector< int64_t * > const &edgelist_srcs, std::vector< int64_t * > const &edgelist_dsts, std::vector< size_t > const &edgelist_edge_counts, int64_t const *renumber_map_labels, raft::host_span< int64_t const > vertex_partition_range_lasts, std::optional< std::vector< std::vector< size_t > > > const &edgelist_intra_partition_segment_offsets, bool do_expensive_check)
template void renumber_ext_vertices< int32_t, false > (raft::handle_t const &handle, int32_t *vertices, size_t num_vertices, int32_t const *renumber_map_labels, int32_t local_int_vertex_first, int32_t local_int_vertex_last, bool do_expensive_check)
template void renumber_local_ext_vertices< int32_t, false > (raft::handle_t const &handle, int32_t *vertices, size_t num_vertices, int32_t const *renumber_map_labels, int32_t local_int_vertex_first, int32_t local_int_vertex_last, bool do_expensive_check)
template void unrenumber_local_int_vertices< int32_t > (raft::handle_t const &handle, int32_t *vertices, size_t num_vertices, int32_t const *renumber_map_labels, int32_t local_int_vertex_first, int32_t local_int_vertex_last, bool do_expensive_check)
template void unrenumber_int_vertices< int32_t, false > (raft::handle_t const &handle, int32_t *vertices, size_t num_vertices, int32_t const *renumber_map_labels, raft::host_span< int32_t const > vertex_partition_range_lasts, bool do_expensive_check)
template void unrenumber_local_int_edges< int32_t, false, false > (raft::handle_t const &handle, int32_t *edgelist_srcs, int32_t *edgelist_dsts, size_t num_edgelist_edges, int32_t const *renumber_map_labels, int32_t num_vertices, bool do_expensive_check)
template void unrenumber_local_int_edges< int32_t, true, false > (raft::handle_t const &handle, int32_t *edgelist_srcs, int32_t *edgelist_dsts, size_t num_edgelist_edges, int32_t const *renumber_map_labels, int32_t num_vertices, bool do_expensive_check)
template void renumber_ext_vertices< int64_t, false > (raft::handle_t const &handle, int64_t *vertices, size_t num_vertices, int64_t const *renumber_map_labels, int64_t local_int_vertex_first, int64_t local_int_vertex_last, bool do_expensive_check)
template void renumber_local_ext_vertices< int64_t, false > (raft::handle_t const &handle, int64_t *vertices, size_t num_vertices, int64_t const *renumber_map_labels, int64_t local_int_vertex_first, int64_t local_int_vertex_last, bool do_expensive_check)
template void unrenumber_local_int_vertices< int64_t > (raft::handle_t const &handle, int64_t *vertices, size_t num_vertices, int64_t const *renumber_map_labels, int64_t local_int_vertex_first, int64_t local_int_vertex_last, bool do_expensive_check)
template void unrenumber_int_vertices< int64_t, false > (raft::handle_t const &handle, int64_t *vertices, size_t num_vertices, int64_t const *renumber_map_labels, raft::host_span< int64_t const > vertex_partition_range_lasts, bool do_expensive_check)
template void unrenumber_local_int_edges< int64_t, false, false > (raft::handle_t const &handle, int64_t *edgelist_srcs, int64_t *edgelist_dsts, size_t num_edgelist_edges, int64_t const *renumber_map_labels, int64_t num_vertices, bool do_expensive_check)
template void unrenumber_local_int_edges< int64_t, true, false > (raft::handle_t const &handle, int64_t *edgelist_srcs, int64_t *edgelist_dsts, size_t num_edgelist_edges, int64_t const *renumber_map_labels, int64_t num_vertices, bool do_expensive_check)
template rmm::device_uvector< int32_t > select_random_vertices (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< raft::device_span< int32_t const > > given_set, raft::random::RngState &rng_state, size_t select_count, bool with_replacement, bool sort_vertices, bool do_expensive_check)
template rmm::device_uvector< int32_t > select_random_vertices (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, true > const &graph_view, std::optional< raft::device_span< int32_t const > > given_set, raft::random::RngState &rng_state, size_t select_count, bool with_replacement, bool sort_vertices, bool do_expensive_check)
template rmm::device_uvector< int64_t > select_random_vertices (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< raft::device_span< int64_t const > > given_set, raft::random::RngState &rng_state, size_t select_count, bool with_replacement, bool sort_vertices, bool do_expensive_check)
template rmm::device_uvector< int64_t > select_random_vertices (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, true > const &graph_view, std::optional< raft::device_span< int64_t const > > given_set, raft::random::RngState &rng_state, size_t select_count, bool with_replacement, bool sort_vertices, bool do_expensive_check)
template rmm::device_uvector< int32_t > select_random_vertices (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< raft::device_span< int32_t const > > given_set, raft::random::RngState &rng_state, size_t select_count, bool with_replacement, bool sort_vertices, bool do_expensive_check)
template rmm::device_uvector< int32_t > select_random_vertices (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, true, false > const &graph_view, std::optional< raft::device_span< int32_t const > > given_set, raft::random::RngState &rng_state, size_t select_count, bool with_replacement, bool sort_vertices, bool do_expensive_check)
template rmm::device_uvector< int64_t > select_random_vertices (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< raft::device_span< int64_t const > > given_set, raft::random::RngState &rng_state, size_t select_count, bool with_replacement, bool sort_vertices, bool do_expensive_check)
template rmm::device_uvector< int64_t > select_random_vertices (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, true, false > const &graph_view, std::optional< raft::device_span< int64_t const > > given_set, raft::random::RngState &rng_state, size_t select_count, bool with_replacement, bool sort_vertices, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > > > symmetrize_edgelist< int32_t, int32_t, float, int32_t, int32_t, false, true > (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_end_times, bool reciprocal)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > > > symmetrize_edgelist< int32_t, int32_t, float, int32_t, int32_t, true, true > (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_end_times, bool reciprocal)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > > > symmetrize_edgelist< int32_t, int32_t, double, int32_t, int32_t, false, true > (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_end_times, bool reciprocal)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > > > symmetrize_edgelist< int32_t, int32_t, double, int32_t, int32_t, true, true > (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_end_times, bool reciprocal)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int64_t > > > symmetrize_edgelist< int32_t, int32_t, float, int32_t, int64_t, false, true > (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_end_times, bool reciprocal)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int64_t > > > symmetrize_edgelist< int32_t, int32_t, float, int32_t, int64_t, true, true > (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_end_times, bool reciprocal)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int64_t > > > symmetrize_edgelist< int32_t, int32_t, double, int32_t, int64_t, false, true > (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_end_times, bool reciprocal)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int64_t > > > symmetrize_edgelist< int32_t, int32_t, double, int32_t, int64_t, true, true > (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_end_times, bool reciprocal)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > > > symmetrize_edgelist< int64_t, int64_t, float, int32_t, int32_t, false, true > (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_end_times, bool reciprocal)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > > > symmetrize_edgelist< int64_t, int64_t, float, int32_t, int32_t, true, true > (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_end_times, bool reciprocal)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > > > symmetrize_edgelist< int64_t, int64_t, double, int32_t, int32_t, false, true > (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_end_times, bool reciprocal)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > > > symmetrize_edgelist< int64_t, int64_t, double, int32_t, int32_t, true, true > (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_end_times, bool reciprocal)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int64_t > > > symmetrize_edgelist< int64_t, int64_t, float, int32_t, int64_t, false, true > (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_end_times, bool reciprocal)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int64_t > > > symmetrize_edgelist< int64_t, int64_t, float, int32_t, int64_t, true, true > (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_end_times, bool reciprocal)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int64_t > > > symmetrize_edgelist< int64_t, int64_t, double, int32_t, int64_t, false, true > (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_end_times, bool reciprocal)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int64_t > > > symmetrize_edgelist< int64_t, int64_t, double, int32_t, int64_t, true, true > (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_end_times, bool reciprocal)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > > > symmetrize_edgelist< int32_t, int32_t, float, int32_t, int32_t, false, false > (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_end_times, bool reciprocal)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > > > symmetrize_edgelist< int32_t, int32_t, float, int32_t, int32_t, true, false > (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_end_times, bool reciprocal)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > > > symmetrize_edgelist< int32_t, int32_t, double, int32_t, int32_t, false, false > (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_end_times, bool reciprocal)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > > > symmetrize_edgelist< int32_t, int32_t, double, int32_t, int32_t, true, false > (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_end_times, bool reciprocal)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int64_t > > > symmetrize_edgelist< int32_t, int32_t, float, int32_t, int64_t, false, false > (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_end_times, bool reciprocal)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int64_t > > > symmetrize_edgelist< int32_t, int32_t, float, int32_t, int64_t, true, false > (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_end_times, bool reciprocal)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int64_t > > > symmetrize_edgelist< int32_t, int32_t, double, int32_t, int64_t, false, false > (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_end_times, bool reciprocal)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int64_t > > > symmetrize_edgelist< int32_t, int32_t, double, int32_t, int64_t, true, false > (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&edgelist_srcs, rmm::device_uvector< int32_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_end_times, bool reciprocal)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > > > symmetrize_edgelist< int64_t, int64_t, float, int32_t, int32_t, false, false > (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_end_times, bool reciprocal)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > > > symmetrize_edgelist< int64_t, int64_t, float, int32_t, int32_t, true, false > (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_end_times, bool reciprocal)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > > > symmetrize_edgelist< int64_t, int64_t, double, int32_t, int32_t, false, false > (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_end_times, bool reciprocal)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > > > symmetrize_edgelist< int64_t, int64_t, double, int32_t, int32_t, true, false > (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_end_times, bool reciprocal)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int64_t > > > symmetrize_edgelist< int64_t, int64_t, float, int32_t, int64_t, false, false > (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_end_times, bool reciprocal)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int64_t > > > symmetrize_edgelist< int64_t, int64_t, float, int32_t, int64_t, true, false > (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< float > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_end_times, bool reciprocal)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int64_t > > > symmetrize_edgelist< int64_t, int64_t, double, int32_t, int64_t, false, false > (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_end_times, bool reciprocal)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int64_t > > > symmetrize_edgelist< int64_t, int64_t, double, int32_t, int64_t, true, false > (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&edgelist_srcs, rmm::device_uvector< int64_t > &&edgelist_dsts, std::optional< rmm::device_uvector< double > > &&edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edgelist_edge_types, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edgelist_edge_end_times, bool reciprocal)
template std::tuple< graph_t< int32_t, int32_t, true, true >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, true >, float > >, std::optional< rmm::device_uvector< int32_t > > > symmetrize_graph (raft::handle_t const &handle, graph_t< int32_t, int32_t, true, true > &&graph, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, true >, float > > &&edge_weights, std::optional< rmm::device_uvector< int32_t > > &&renumber_map, bool reciprocal, bool do_expensive_check)
template std::tuple< graph_t< int32_t, int32_t, false, true >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, true >, float > >, std::optional< rmm::device_uvector< int32_t > > > symmetrize_graph (raft::handle_t const &handle, graph_t< int32_t, int32_t, false, true > &&graph, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, true >, float > > &&edge_weights, std::optional< rmm::device_uvector< int32_t > > &&renumber_map, bool reciprocal, bool do_expensive_check)
template std::tuple< graph_t< int32_t, int32_t, true, true >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, true >, double > >, std::optional< rmm::device_uvector< int32_t > > > symmetrize_graph (raft::handle_t const &handle, graph_t< int32_t, int32_t, true, true > &&graph, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, true >, double > > &&edge_weights, std::optional< rmm::device_uvector< int32_t > > &&renumber_map, bool reciprocal, bool do_expensive_check)
template std::tuple< graph_t< int32_t, int32_t, false, true >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, true >, double > >, std::optional< rmm::device_uvector< int32_t > > > symmetrize_graph (raft::handle_t const &handle, graph_t< int32_t, int32_t, false, true > &&graph, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, true >, double > > &&edge_weights, std::optional< rmm::device_uvector< int32_t > > &&renumber_map, bool reciprocal, bool do_expensive_check)
template std::tuple< graph_t< int64_t, int64_t, true, true >, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, true, true >, float > >, std::optional< rmm::device_uvector< int64_t > > > symmetrize_graph (raft::handle_t const &handle, graph_t< int64_t, int64_t, true, true > &&graph, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, true, true >, float > > &&edge_weights, std::optional< rmm::device_uvector< int64_t > > &&renumber_map, bool reciprocal, bool do_expensive_check)
template std::tuple< graph_t< int64_t, int64_t, false, true >, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, false, true >, float > >, std::optional< rmm::device_uvector< int64_t > > > symmetrize_graph (raft::handle_t const &handle, graph_t< int64_t, int64_t, false, true > &&graph, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, false, true >, float > > &&edge_weights, std::optional< rmm::device_uvector< int64_t > > &&renumber_map, bool reciprocal, bool do_expensive_check)
template std::tuple< graph_t< int64_t, int64_t, true, true >, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, true, true >, double > >, std::optional< rmm::device_uvector< int64_t > > > symmetrize_graph (raft::handle_t const &handle, graph_t< int64_t, int64_t, true, true > &&graph, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, true, true >, double > > &&edge_weights, std::optional< rmm::device_uvector< int64_t > > &&renumber_map, bool reciprocal, bool do_expensive_check)
template std::tuple< graph_t< int64_t, int64_t, false, true >, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, false, true >, double > >, std::optional< rmm::device_uvector< int64_t > > > symmetrize_graph (raft::handle_t const &handle, graph_t< int64_t, int64_t, false, true > &&graph, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, false, true >, double > > &&edge_weights, std::optional< rmm::device_uvector< int64_t > > &&renumber_map, bool reciprocal, bool do_expensive_check)
template std::tuple< graph_t< int32_t, int32_t, true, false >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, false >, float > >, std::optional< rmm::device_uvector< int32_t > > > symmetrize_graph (raft::handle_t const &handle, graph_t< int32_t, int32_t, true, false > &&graph, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, false >, float > > &&edge_weights, std::optional< rmm::device_uvector< int32_t > > &&renumber_map, bool reciprocal, bool do_expensive_check)
template std::tuple< graph_t< int32_t, int32_t, false, false >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, false >, float > >, std::optional< rmm::device_uvector< int32_t > > > symmetrize_graph (raft::handle_t const &handle, graph_t< int32_t, int32_t, false, false > &&graph, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, false >, float > > &&edge_weights, std::optional< rmm::device_uvector< int32_t > > &&renumber_map, bool reciprocal, bool do_expensive_check)
template std::tuple< graph_t< int32_t, int32_t, true, false >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, false >, double > >, std::optional< rmm::device_uvector< int32_t > > > symmetrize_graph (raft::handle_t const &handle, graph_t< int32_t, int32_t, true, false > &&graph, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, false >, double > > &&edge_weights, std::optional< rmm::device_uvector< int32_t > > &&renumber_map, bool reciprocal, bool do_expensive_check)
template std::tuple< graph_t< int32_t, int32_t, false, false >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, false >, double > >, std::optional< rmm::device_uvector< int32_t > > > symmetrize_graph (raft::handle_t const &handle, graph_t< int32_t, int32_t, false, false > &&graph, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, false >, double > > &&edge_weights, std::optional< rmm::device_uvector< int32_t > > &&renumber_map, bool reciprocal, bool do_expensive_check)
template std::tuple< graph_t< int64_t, int64_t, true, false >, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, true, false >, float > >, std::optional< rmm::device_uvector< int64_t > > > symmetrize_graph (raft::handle_t const &handle, graph_t< int64_t, int64_t, true, false > &&graph, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, true, false >, float > > > &&edge_weights, std::optional< rmm::device_uvector< int64_t > > > &&renumber_map, bool reciprocal, bool do_expensive_check)
template std::tuple< graph_t< int64_t, int64_t, false, false >, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, false, false >, float > >, std::optional< rmm::device_uvector< int64_t > > > symmetrize_graph (raft::handle_t const &handle, graph_t< int64_t, int64_t, false, false > &&graph, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, false, false >, float > > > &&edge_weights, std::optional< rmm::device_uvector< int64_t > > > &&renumber_map, bool reciprocal, bool do_expensive_check)
template std::tuple< graph_t< int64_t, int64_t, true, false >, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, true, false >, double > >, std::optional< rmm::device_uvector< int64_t > > > symmetrize_graph (raft::handle_t const &handle, graph_t< int64_t, int64_t, true, false > &&graph, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, true, false >, double > > > &&edge_weights, std::optional< rmm::device_uvector< int64_t > > > &&renumber_map, bool reciprocal, bool do_expensive_check)
template std::tuple< graph_t< int64_t, int64_t, false, false >, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, false, false >, double > >, std::optional< rmm::device_uvector< int64_t > > > symmetrize_graph (raft::handle_t const &handle, graph_t< int64_t, int64_t, false, false > &&graph, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, false, false >, double > > > &&edge_weights, std::optional< rmm::device_uvector< int64_t > > > &&renumber_map, bool reciprocal, bool do_expensive_check)
template std::tuple< graph_t< int32_t, int32_t, true, true >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, true >, float > >, std::optional< rmm::device_uvector< int32_t > > > transpose_graph (raft::handle_t const &handle, graph_t< int32_t, int32_t, true, true > &&graph, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, true >, float > > > &&edge_weights, std::optional< rmm::device_uvector< int32_t > > > &&renumber_map, bool do_expensive_check)
template std::tuple< graph_t< int32_t, int32_t, false, true >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, true >, float > >, std::optional< rmm::device_uvector< int32_t > > > transpose_graph (raft::handle_t const &handle, graph_t< int32_t, int32_t, false, true > &&graph, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, true >, float > > > &&edge_weights, std::optional< rmm::device_uvector< int32_t > > > &&renumber_map, bool do_expensive_check)
template std::tuple< graph_t< int32_t, int32_t, true, true >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, true >, double > >, std::optional< rmm::device_uvector< int32_t > > > transpose_graph (raft::handle_t const &handle, graph_t< int32_t, int32_t, true, true > &&graph, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, true >, double > > > &&edge_weights, std::optional< rmm::device_uvector< int32_t > > > &&renumber_map, bool do_expensive_check)
template std::tuple< graph_t< int32_t, int32_t, false, true >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, true >, double > >, std::optional< rmm::device_uvector< int32_t > > > transpose_graph (raft::handle_t const &handle, graph_t< int32_t, int32_t, false, true > &&graph, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, true >, double > > > &&edge_weights, std::optional< rmm::device_uvector< int32_t > > > &&renumber_map, bool do_expensive_check)
template std::tuple< graph_t< int64_t, int64_t, true, true >, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, true, true >, float > >, std::optional< rmm::device_uvector< int64_t > > > transpose_graph (raft::handle_t const &handle, graph_t< int64_t, int64_t, true, true > &&graph, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, true, true >, float > > > &&edge_weights, std::optional< rmm::device_uvector< int64_t > > > &&renumber_map, bool do_expensive_check)
template std::tuple< graph_t< int64_t, int64_t, false, true >, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, false, true >, float > >, std::optional< rmm::device_uvector< int64_t > > > transpose_graph (raft::handle_t const &handle, graph_t< int64_t, int64_t, false, true > &&graph, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, false, true >, float > > > &&edge_weights, std::optional< rmm::device_uvector< int64_t > > > &&renumber_map, bool do_expensive_check)
template std::tuple< graph_t< int64_t, int64_t, true, true >, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, true, true >, double > >, std::optional< rmm::device_uvector< int64_t > > > transpose_graph (raft::handle_t const &handle, graph_t< int64_t, int64_t, true, true > &&graph, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, true, true >, double > > > &&edge_weights, std::optional< rmm::device_uvector< int64_t > > > &&renumber_map, bool do_expensive_check)
template std::tuple< graph_t< int64_t, int64_t, false, true >, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, false, true >, double > >, std::optional< rmm::device_uvector< int64_t > > > transpose_graph (raft::handle_t const &handle, graph_t< int64_t, int64_t, false, true > &&graph, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, false, true >, double > > > &&edge_weights, std::optional< rmm::device_uvector< int64_t > > > &&renumber_map, bool do_expensive_check)
template std::tuple< graph_t< int32_t, int32_t, true, false >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, false >, float > >, std::optional< rmm::device_uvector< int32_t > > > transpose_graph (raft::handle_t const &handle, graph_t< int32_t, int32_t, true, false > &&graph, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, false >, float > > > &&edge_weights, std::optional< rmm::device_uvector< int32_t > > > &&renumber_map, bool do_expensive_check)
template std::tuple< graph_t< int32_t, int32_t, false, false >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, false >, float > >, std::optional< rmm::device_uvector< int32_t > > > transpose_graph (raft::handle_t const &handle, graph_t< int32_t, int32_t, false, false > &&graph, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, false >, float > > > &&edge_weights, std::optional< rmm::device_uvector< int32_t > > > &&renumber_map, bool do_expensive_check)
template std::tuple< graph_t< int32_t, int32_t, true, false >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, false >, double > >, std::optional< rmm::device_uvector< int32_t > > > transpose_graph (raft::handle_t const &handle, graph_t< int32_t, int32_t, true, false > &&graph, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, false >, double > > > &&edge_weights, std::optional< rmm::device_uvector< int32_t > > > &&renumber_map, bool do_expensive_check)
template std::tuple< graph_t< int32_t, int32_t, false, false >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, false >, double > >, std::optional< rmm::device_uvector< int32_t > > > transpose_graph (raft::handle_t const &handle, graph_t< int32_t, int32_t, false, false > &&graph, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, false >, double > > > &&edge_weights, std::optional< rmm::device_uvector< int32_t > > > &&renumber_map, bool do_expensive_check)
template std::tuple< graph_t< int64_t, int64_t, true, false >, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, true, false >, float > >, std::optional< rmm::device_uvector< int64_t > > > transpose_graph (raft::handle_t const &handle, graph_t< int64_t, int64_t, true, false > &&graph, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, true, false >, float > > > &&edge_weights, std::optional< rmm::device_uvector< int64_t > > > &&renumber_map, bool do_expensive_check)
template std::tuple< graph_t< int64_t, int64_t, false, false >, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, false, false >, float > >, std::optional< rmm::device_uvector< int64_t > > > transpose_graph (raft::handle_t const &handle, graph_t< int64_t, int64_t, false, false > &&graph, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, false, false >, float > > > &&edge_weights, std::optional< rmm::device_uvector< int64_t > > > &&renumber_map, bool do_expensive_check)
template std::tuple< graph_t< int64_t, int64_t, true, false >, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, true, false >, double > >, std::optional< rmm::device_uvector< int64_t > > > transpose_graph (raft::handle_t const &handle, graph_t< int64_t, int64_t, true, false > &&graph, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, true, false >, double > > > &&edge_weights, std::optional< rmm::device_uvector< int64_t > > > &&renumber_map, bool do_expensive_check)
template std::tuple< graph_t< int64_t, int64_t, false, false >, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, false, false >, double > >, std::optional< rmm::device_uvector< int64_t > > > transpose_graph (raft::handle_t const &handle, graph_t< int64_t, int64_t, false, false > &&graph, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, false, false >, double > > > &&edge_weights, std::optional< rmm::device_uvector< int64_t > > > &&renumber_map, bool do_expensive_check)
template std::tuple< graph_t< int32_t, int32_t, false, true >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, true >, float > >, std::optional< rmm::device_uvector< int32_t > > > transpose_graph_storage (raft::handle_t const &handle, graph_t< int32_t, int32_t, true, true > &&graph, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, true >, float > >, std::optional< rmm::device_uvector< int32_t > > > transpose_graph_storage (raft::handle_t const &handle, graph_t< int32_t, int32_t, false, true > &&graph, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, true >, float > > > &&edge_weights, std::optional< rmm::device_uvector< int32_t > > > &&renumber_map, bool do_expensive_check)
template std::tuple< graph_t< int32_t, int32_t, true, true >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, true >, float > >, std::optional< rmm::device_uvector< int32_t > > > transpose_graph_storage (raft::handle_t const &handle, graph_t< int32_t, int32_t, false, true > &&graph, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, true >, float > > > &&edge_weights, std::optional< rmm::device_uvector< int32_t > > > &&renumber_map, bool do_expensive_check)
template std::tuple< graph_t< int32_t, int32_t, false, true >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, true >, double > >, std::optional< rmm::device_uvector< int32_t > > > transpose_graph_storage (raft::handle_t const &handle, graph_t< int32_t, int32_t, true, true > &&graph, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, true >, double > >, std::optional< rmm::device_uvector< int32_t > > > transpose_graph_storage (raft::handle_t const &handle, graph_t< int32_t, int32_t, false, true > &&graph, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, true >, double > > > &&edge_weights, std::optional< rmm::device_uvector< int32_t > > > &&renumber_map, bool do_expensive_check)
template std::tuple< graph_t< int32_t, int32_t, true, true >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, true >, double > >, std::optional< rmm::device_uvector< int32_t > > > transpose_graph_storage (raft::handle_t const &handle, graph_t< int32_t, int32_t, false, true > &&graph, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, true >, double > > &&edge_weights, std::optional< rmm::device_uvector< int32_t > > &&renumber_map, bool do_expensive_check)
template std::tuple< graph_t< int64_t, int64_t, false, true >, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, false, true >, float > >, std::optional< rmm::device_uvector< int64_t > > > transpose_graph_storage (raft::handle_t const &handle, graph_t< int64_t, int64_t, true, true > &&graph, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, true, true >, float > > &&edge_weights, std::optional< rmm::device_uvector< int64_t > > &&renumber_map, bool do_expensive_check)
template std::tuple< graph_t< int64_t, int64_t, true, true >, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, true, true >, float > >, std::optional< rmm::device_uvector< int64_t > > > transpose_graph_storage (raft::handle_t const &handle, graph_t< int64_t, int64_t, false, true > &&graph, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, false, true >, float > > &&edge_weights, std::optional< rmm::device_uvector< int64_t > > &&renumber_map, bool do_expensive_check)
template std::tuple< graph_t< int64_t, int64_t, false, true >, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, false, true >, double > >, std::optional< rmm::device_uvector< int64_t > > > transpose_graph_storage (raft::handle_t const &handle, graph_t< int64_t, int64_t, true, true > &&graph, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, true, true >, double > > &&edge_weights, std::optional< rmm::device_uvector< int64_t > > &&renumber_map, bool do_expensive_check)
template std::tuple< graph_t< int64_t, int64_t, true, true >, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, true, true >, double > >, std::optional< rmm::device_uvector< int64_t > > > transpose_graph_storage (raft::handle_t const &handle, graph_t< int64_t, int64_t, false, true > &&graph, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, false, true >, double > > &&edge_weights, std::optional< rmm::device_uvector< int64_t > > &&renumber_map, bool do_expensive_check)
template std::tuple< graph_t< int32_t, int32_t, false, false >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, false >, float > >, std::optional< rmm::device_uvector< int32_t > > > transpose_graph_storage (raft::handle_t const &handle, graph_t< int32_t, int32_t, true, false > &&graph, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, false >, float > > &&edge_weights, std::optional< rmm::device_uvector< int32_t > > &&renumber_map, bool do_expensive_check)
template std::tuple< graph_t< int32_t, int32_t, true, false >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, false >, float > >, std::optional< rmm::device_uvector< int32_t > > > transpose_graph_storage (raft::handle_t const &handle, graph_t< int32_t, int32_t, false, false > &&graph, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, false >, float > > &&edge_weights, std::optional< rmm::device_uvector< int32_t > > &&renumber_map, bool do_expensive_check)
template std::tuple< graph_t< int32_t, int32_t, false, false >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, false >, double > >, std::optional< rmm::device_uvector< int32_t > > > transpose_graph_storage (raft::handle_t const &handle, graph_t< int32_t, int32_t, true, false > &&graph, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, false >, double > > &&edge_weights, std::optional< rmm::device_uvector< int32_t > > &&renumber_map, bool do_expensive_check)
template std::tuple< graph_t< int32_t, int32_t, true, false >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, true, false >, double > >, std::optional< rmm::device_uvector< int32_t > > > transpose_graph_storage (raft::handle_t const &handle, graph_t< int32_t, int32_t, false, false > &&graph, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, false >, double > > &&edge_weights, std::optional< rmm::device_uvector< int32_t > > &&renumber_map, bool do_expensive_check)
template std::tuple< graph_t< int64_t, int64_t, false, false >, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, false, false >, float > >, std::optional< rmm::device_uvector< int64_t > > > transpose_graph_storage (raft::handle_t const &handle, graph_t< int64_t, int64_t, true, false > &&graph, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, true, false >, float > > &&edge_weights, std::optional< rmm::device_uvector< int64_t > > &&renumber_map, bool do_expensive_check)
template std::tuple< graph_t< int64_t, int64_t, true, false >, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, true, false >, float > >, std::optional< rmm::device_uvector< int64_t > > > transpose_graph_storage (raft::handle_t const &handle, graph_t< int64_t, int64_t, false, false > &&graph, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, false, false >, float > > &&edge_weights, std::optional< rmm::device_uvector< int64_t > > &&renumber_map, bool do_expensive_check)
template std::tuple< graph_t< int64_t, int64_t, false, false >, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, false, false >, double > >, std::optional< rmm::device_uvector< int64_t > > > transpose_graph_storage (raft::handle_t const &handle, graph_t< int64_t, int64_t, true, false > &&graph, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, true, false >, double > > &&edge_weights, std::optional< rmm::device_uvector< int64_t > > &&renumber_map, bool do_expensive_check)
template std::tuple< graph_t< int64_t, int64_t, true, false >, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, true, false >, double > >, std::optional< rmm::device_uvector< int64_t > > > transpose_graph_storage (raft::handle_t const &handle, graph_t< int64_t, int64_t, false, false > &&graph, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, false, false >, double > > &&edge_weights, std::optional< rmm::device_uvector< int64_t > > &&renumber_map, bool do_expensive_check)
template void bfs (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, int32_t *distances, int32_t *predecessors, int32_t const *sources, size_t n_sources, bool direction_optimizing, int32_t depth_limit, bool do_expensive_check)
template void bfs (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, int64_t *distances, int64_t *predecessors, int64_t const *sources, size_t n_sources, bool direction_optimizing, int64_t depth_limit, bool do_expensive_check)
template void bfs (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, int32_t *distances, int32_t *predecessors, int32_t const *sources, size_t n_sources, bool direction_optimizing, int32_t depth_limit, bool do_expensive_check)
template void bfs (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, int64_t *distances, int64_t *predecessors, int64_t const *sources, size_t n_sources, bool direction_optimizing, int64_t depth_limit, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, int32_t > extract_bfs_paths (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, int32_t const *distances, int32_t const *predecessors, int32_t const *destinations, size_t n_destinations)
template std::tuple< rmm::device_uvector< int64_t >, int64_t > extract_bfs_paths (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, int64_t const *distances, int64_t const *predecessors, int64_t const *destinations, size_t n_destinations)
template std::tuple< rmm::device_uvector< int32_t >, int32_t > extract_bfs_paths (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, int32_t const *distances, int32_t const *predecessors, int32_t const *destinations, size_t n_destinations)
template std::tuple< rmm::device_uvector< int64_t >, int64_t > extract_bfs_paths (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, int64_t const *distances, int64_t const *predecessors, int64_t const *destinations, size_t n_destinations)
template<typename vertex_t, typename edge_t, bool multi_gpu>
std::tuple<rmm::device_uvector<size_t>, rmm::device_uvector<vertex_t>> k_hop_nbrs(raft::handle_t const &handle, graph_view_t<vertex_t, edge_t, false, multi_gpu> const &graph_view, raft::device_span<vertex_t const> start_vertices, size_t k, bool do_expensive_check)#
template std::tuple< rmm::device_uvector< size_t >, rmm::device_uvector< int32_t > > k_hop_nbrs (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, raft::device_span< int32_t const > start_vertices, size_t k, bool do_expensive_check)
template std::tuple< rmm::device_uvector< size_t >, rmm::device_uvector< int64_t > > k_hop_nbrs (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, raft::device_span< int64_t const > start_vertices, size_t k, bool do_expensive_check)
template std::tuple< rmm::device_uvector< size_t >, rmm::device_uvector< int32_t > > k_hop_nbrs (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, raft::device_span< int32_t const > start_vertices, size_t k, bool do_expensive_check)
template std::tuple< rmm::device_uvector< size_t >, rmm::device_uvector< int64_t > > k_hop_nbrs (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, raft::device_span< int64_t const > start_vertices, size_t k, bool do_expensive_check)
template rmm::device_uvector< float > od_shortest_distances (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, edge_property_view_t< int32_t, float const * > edge_weight_view, raft::device_span< int32_t const > origins, raft::device_span< int32_t const > destinations, float cutoff, bool do_expensive_check)
template rmm::device_uvector< double > od_shortest_distances (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, edge_property_view_t< int32_t, double const * > edge_weight_view, raft::device_span< int32_t const > origins, raft::device_span< int32_t const > destinations, double cutoff, bool do_expensive_check)
template rmm::device_uvector< float > od_shortest_distances (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, edge_property_view_t< int64_t, float const * > edge_weight_view, raft::device_span< int64_t const > origins, raft::device_span< int64_t const > destinations, float cutoff, bool do_expensive_check)
template rmm::device_uvector< double > od_shortest_distances (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, edge_property_view_t< int64_t, double const * > edge_weight_view, raft::device_span< int64_t const > origins, raft::device_span< int64_t const > destinations, double cutoff, bool do_expensive_check)
template void sssp (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, edge_property_view_t< int32_t, float const * > edge_weight_view, float *distances, int32_t *predecessors, int32_t source_vertex, float cutoff, bool do_expensive_check)
template void sssp (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, edge_property_view_t< int32_t, double const * > edge_weight_view, double *distances, int32_t *predecessors, int32_t source_vertex, double cutoff, bool do_expensive_check)
template void sssp (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, edge_property_view_t< int64_t, float const * > edge_weight_view, float *distances, int64_t *predecessors, int64_t source_vertex, float cutoff, bool do_expensive_check)
template void sssp (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, edge_property_view_t< int64_t, double const * > edge_weight_view, double *distances, int64_t *predecessors, int64_t source_vertex, double cutoff, bool do_expensive_check)
template void sssp (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, edge_property_view_t< int32_t, float const * > edge_weight_view, float *distances, int32_t *predecessors, int32_t source_vertex, float cutoff, bool do_expensive_check)
template void sssp (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, edge_property_view_t< int32_t, double const * > edge_weight_view, double *distances, int32_t *predecessors, int32_t source_vertex, double cutoff, bool do_expensive_check)
template void sssp (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, edge_property_view_t< int64_t, float const * > edge_weight_view, float *distances, int64_t *predecessors, int64_t source_vertex, float cutoff, bool do_expensive_check)
template void sssp (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, edge_property_view_t< int64_t, double const * > edge_weight_view, double *distances, int64_t *predecessors, int64_t source_vertex, double cutoff, bool do_expensive_check)
template std::unique_ptr< legacy::GraphCOO< int, int, float > > minimum_spanning_tree< int, int, float > (raft::handle_t const &handle, legacy::GraphCSRView< int, int, float > const &graph, rmm::device_async_resource_ref mr)
template std::unique_ptr< legacy::GraphCOO< int, int, double > > minimum_spanning_tree< int, int, double > (raft::handle_t const &handle, legacy::GraphCSRView< int, int, double > const &graph, rmm::device_async_resource_ref mr)
template<typename KVStoreViewType, typename KeyIterator, typename KeyToCommRankOp>
dataframe_buffer_type_t<typename KVStoreViewType::value_type> collect_values_for_keys(raft::comms::comms_t const &comm, KVStoreViewType kv_store_view, KeyIterator collect_key_first, KeyIterator collect_key_last, KeyToCommRankOp key_to_comm_rank_op, rmm::cuda_stream_view stream_view)#
template<typename KVStoreViewType, typename KeyToCommRankOp>
std::tuple<rmm::device_uvector<typename KVStoreViewType::key_type>, dataframe_buffer_type_t<typename KVStoreViewType::value_type>> collect_values_for_unique_keys(raft::comms::comms_t const &comm, KVStoreViewType kv_store_view, rmm::device_uvector<typename KVStoreViewType::key_type> &&collect_unique_keys, KeyToCommRankOp key_to_comm_rank_op, rmm::cuda_stream_view stream_view)#
template<typename vertex_t, typename ValueIterator>
dataframe_buffer_type_t<typename thrust::iterator_traits<ValueIterator>::value_type> collect_values_for_sorted_unique_int_vertices(raft::comms::comms_t const &comm, raft::device_span<vertex_t const> collect_sorted_unique_int_vertices, ValueIterator local_value_first, raft::host_span<vertex_t const> comm_rank_vertex_partition_range_lasts, vertex_t local_vertex_partition_range_first, rmm::cuda_stream_view stream_view)#
template<typename VertexIterator, typename ValueIterator>
dataframe_buffer_type_t<typename thrust::iterator_traits<ValueIterator>::value_type> collect_values_for_int_vertices(raft::comms::comms_t const &comm, VertexIterator collect_vertex_first, VertexIterator collect_vertex_last, ValueIterator local_value_first, raft::host_span<typename thrust::iterator_traits<VertexIterator>::value_type const> comm_rank_vertex_partition_range_lasts, typename thrust::iterator_traits<VertexIterator>::value_type local_vertex_partition_range_first, rmm::cuda_stream_view stream_view)#
template<typename T>
rmm::device_uvector<T> device_allgatherv(raft::handle_t const &handle, raft::comms::comms_t const &comms, raft::device_span<T const> d_input)#
template<typename vertex_t, typename weight_t>
void get_traversed_cost(raft::handle_t const &handle, vertex_t const *vertices, vertex_t const *preds, weight_t const *info_weights, weight_t *out, vertex_t stop_vertex, vertex_t num_vertices)#

获取 BFS 或 SSSP 函数调用的结果,并沿通往起始顶点的路径对给定权重求和。

模板参数
  • vertex_t – 顶点标识符的类型。需要是整数类型。

  • weight_t – 边权重的类型。需要是浮点类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器以及各种 CUDA 库的句柄)。必须至少有一个工作流。

  • vertices – 指向顶点 ID 的指针。

  • preds – 指向前驱顶点的指针。

  • info_weights – 沿从前驱顶点到当前顶点的边的次要权重。

  • out – 对于每个索引,包含沿路径展开的权重总和。

  • num_vertices – 顶点数量。

template void get_traversed_cost< int32_t, float > (raft::handle_t const &handle, int32_t const *vertices, int32_t const *preds, float const *info_weights, float *out, int32_t stop_vertex, int32_t num_vertices)
template void get_traversed_cost< int32_t, double > (raft::handle_t const &handle, int32_t const *vertices, int32_t const *preds, double const *info_weights, double *out, int32_t stop_vertex, int32_t num_vertices)
template void get_traversed_cost< int64_t, float > (raft::handle_t const &handle, int64_t const *vertices, int64_t const *preds, float const *info_weights, float *out, int64_t stop_vertex, int64_t num_vertices)
template void get_traversed_cost< int64_t, double > (raft::handle_t const &handle, int64_t const *vertices, int64_t const *preds, double const *info_weights, double *out, int64_t stop_vertex, int64_t num_vertices)
template<typename vertex_t>
rmm::device_uvector<vertex_t> shuffle_local_edge_srcs(raft::handle_t const &handle, rmm::device_uvector<vertex_t> &&edge_srcs, raft::host_span<vertex_t const> vertex_partition_range_lasts, bool store_transposed)#
template<typename vertex_t, typename value_t>
std::tuple<rmm::device_uvector<vertex_t>, dataframe_buffer_type_t<value_t>> shuffle_local_edge_src_value_pairs(raft::handle_t const &handle, rmm::device_uvector<vertex_t> &&edge_srcs, dataframe_buffer_type_t<value_t> &&edge_values, raft::host_span<vertex_t const> vertex_partition_range_lasts, bool store_transposed)#
template<typename vertex_t>
rmm::device_uvector<vertex_t> shuffle_local_edge_dsts(raft::handle_t const &handle, rmm::device_uvector<vertex_t> &&edge_dsts, raft::host_span<vertex_t const> vertex_partition_range_lasts, bool store_transposed)#
template<typename vertex_t, typename value_t>
std::tuple<rmm::device_uvector<vertex_t>, dataframe_buffer_type_t<value_t>> shuffle_local_edge_dst_value_pairs(raft::handle_t const &handle, rmm::device_uvector<vertex_t> &&edge_dsts, dataframe_buffer_type_t<value_t> &&edge_values, raft::host_span<vertex_t const> vertex_partition_range_lasts, bool store_transposed)#
template std::tuple< rmm::device_uvector< int32_t >, dataframe_buffer_type_t< float > > shuffle_local_edge_src_value_pairs< int32_t, float > (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&edge_srcs, dataframe_buffer_type_t< float > &&edge_values, raft::host_span< int32_t const > vertex_partition_range_lasts, bool store_transposed)
template std::tuple< rmm::device_uvector< int32_t >, dataframe_buffer_type_t< double > > shuffle_local_edge_src_value_pairs< int32_t, double > (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&edge_srcs, dataframe_buffer_type_t< double > &&edge_values, raft::host_span< int32_t const > vertex_partition_range_lasts, bool store_transposed)
template std::tuple< rmm::device_uvector< int32_t >, dataframe_buffer_type_t< float > > shuffle_local_edge_dst_value_pairs< int32_t, float > (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&edge_dsts, dataframe_buffer_type_t< float > &&edge_values, raft::host_span< int32_t const > vertex_partition_range_lasts, bool store_transposed)
template std::tuple< rmm::device_uvector< int32_t >, dataframe_buffer_type_t< double > > shuffle_local_edge_dst_value_pairs< int32_t, double > (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&edge_dsts, dataframe_buffer_type_t< double > &&edge_values, raft::host_span< int32_t const > vertex_partition_range_lasts, bool store_transposed)
template rmm::device_uvector< int32_t > shuffle_local_edge_srcs (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&edge_srcs, raft::host_span< int32_t const > vertex_partition_range_lasts, bool store_transposed)
template std::tuple< rmm::device_uvector< int32_t >, dataframe_buffer_type_t< int32_t > > shuffle_local_edge_src_value_pairs< int32_t, int32_t > (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&edge_srcs, dataframe_buffer_type_t< int32_t > &&edge_values, raft::host_span< int32_t const > vertex_partition_range_lasts, bool store_transposed)
template std::tuple< rmm::device_uvector< int32_t >, dataframe_buffer_type_t< int64_t > > shuffle_local_edge_src_value_pairs< int32_t, int64_t > (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&edge_srcs, dataframe_buffer_type_t< int64_t > &&edge_values, raft::host_span< int32_t const > vertex_partition_range_lasts, bool store_transposed)
template std::tuple< rmm::device_uvector< int32_t >, dataframe_buffer_type_t< size_t > > shuffle_local_edge_src_value_pairs< int32_t, size_t > (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&edge_srcs, dataframe_buffer_type_t< size_t > &&edge_values, raft::host_span< int32_t const > vertex_partition_range_lasts, bool store_transposed)
template rmm::device_uvector< int32_t > shuffle_local_edge_dsts (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&edge_dsts, raft::host_span< int32_t const > vertex_partition_range_lasts, bool store_transposed)
template std::tuple< rmm::device_uvector< int32_t >, dataframe_buffer_type_t< int32_t > > shuffle_local_edge_dst_value_pairs< int32_t, int32_t > (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&edge_dsts, dataframe_buffer_type_t< int32_t > &&edge_values, raft::host_span< int32_t const > vertex_partition_range_lasts, bool store_transposed)
template std::tuple< rmm::device_uvector< int32_t >, dataframe_buffer_type_t< int64_t > > shuffle_local_edge_dst_value_pairs< int32_t, int64_t > (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&edge_dsts, dataframe_buffer_type_t< int64_t > &&edge_values, raft::host_span< int32_t const > vertex_partition_range_lasts, bool store_transposed)
template std::tuple< rmm::device_uvector< int32_t >, dataframe_buffer_type_t< size_t > > shuffle_local_edge_dst_value_pairs< int32_t, size_t > (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&edge_dsts, dataframe_buffer_type_t< size_t > &&edge_values, raft::host_span< int32_t const > vertex_partition_range_lasts, bool store_transposed)
template std::tuple< rmm::device_uvector< int64_t >, dataframe_buffer_type_t< float > > shuffle_local_edge_src_value_pairs< int64_t, float > (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&edge_srcs, dataframe_buffer_type_t< float > &&edge_values, raft::host_span< int64_t const > vertex_partition_range_lasts, bool store_transposed)
template std::tuple< rmm::device_uvector< int64_t >, dataframe_buffer_type_t< double > > shuffle_local_edge_src_value_pairs< int64_t, double > (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&edge_srcs, dataframe_buffer_type_t< double > &&edge_values, raft::host_span< int64_t const > vertex_partition_range_lasts, bool store_transposed)
template std::tuple< rmm::device_uvector< int64_t >, dataframe_buffer_type_t< float > > shuffle_local_edge_dst_value_pairs< int64_t, float > (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&edge_dsts, dataframe_buffer_type_t< float > &&edge_values, raft::host_span< int64_t const > vertex_partition_range_lasts, bool store_transposed)
template std::tuple< rmm::device_uvector< int64_t >, dataframe_buffer_type_t< double > > shuffle_local_edge_dst_value_pairs< int64_t, double > (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&edge_dsts, dataframe_buffer_type_t< double > &&edge_values, raft::host_span< int64_t const > vertex_partition_range_lasts, bool store_transposed)
template rmm::device_uvector< int64_t > shuffle_local_edge_srcs (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&edge_srcs, raft::host_span< int64_t const > vertex_partition_range_lasts, bool store_transposed)
template std::tuple< rmm::device_uvector< int64_t >, dataframe_buffer_type_t< int32_t > > shuffle_local_edge_src_value_pairs< int64_t, int32_t > (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&edge_srcs, dataframe_buffer_type_t< int32_t > &&edge_values, raft::host_span< int64_t const > vertex_partition_range_lasts, bool store_transposed)
template std::tuple< rmm::device_uvector< int64_t >, dataframe_buffer_type_t< int64_t > > shuffle_local_edge_src_value_pairs< int64_t, int64_t > (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&edge_srcs, dataframe_buffer_type_t< int64_t > &&edge_values, raft::host_span< int64_t const > vertex_partition_range_lasts, bool store_transposed)
template std::tuple< rmm::device_uvector< int64_t >, dataframe_buffer_type_t< size_t > > shuffle_local_edge_src_value_pairs< int64_t, size_t > (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&edge_srcs, dataframe_buffer_type_t< size_t > &&edge_values, raft::host_span< int64_t const > vertex_partition_range_lasts, bool store_transposed)
template rmm::device_uvector< int64_t > shuffle_local_edge_dsts (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&edge_dsts, raft::host_span< int64_t const > vertex_partition_range_lasts, bool store_transposed)
template std::tuple< rmm::device_uvector< int64_t >, dataframe_buffer_type_t< int32_t > > shuffle_local_edge_dst_value_pairs< int64_t, int32_t > (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&edge_dsts, dataframe_buffer_type_t< int32_t > &&edge_values, raft::host_span< int64_t const > vertex_partition_range_lasts, bool store_transposed)
template std::tuple< rmm::device_uvector< int64_t >, dataframe_buffer_type_t< int64_t > > shuffle_local_edge_dst_value_pairs< int64_t, int64_t > (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&edge_dsts, dataframe_buffer_type_t< int64_t > &&edge_values, raft::host_span< int64_t const > vertex_partition_range_lasts, bool store_transposed)
template std::tuple< rmm::device_uvector< int64_t >, dataframe_buffer_type_t< size_t > > shuffle_local_edge_dst_value_pairs< int64_t, size_t > (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&edge_dsts, dataframe_buffer_type_t< size_t > &&edge_values, raft::host_span< int64_t const > vertex_partition_range_lasts, bool store_transposed)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::vector< size_t > > shuffle_ext_edges (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&majors, rmm::device_uvector< int32_t > &&minors, std::optional< rmm::device_uvector< float > > &&weights, std::optional< rmm::device_uvector< int32_t > > &&edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edge_types, std::optional< rmm::device_uvector< int32_t > > &&edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edge_end_times, bool store_transposed)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::vector< size_t > > shuffle_ext_edges (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&majors, rmm::device_uvector< int32_t > &&minors, std::optional< rmm::device_uvector< double > > &&weights, std::optional< rmm::device_uvector< int32_t > > &&edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edge_types, std::optional< rmm::device_uvector< int32_t > > &&edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edge_end_times, bool store_transposed)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int64_t > >, std::vector< size_t > > shuffle_ext_edges (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&majors, rmm::device_uvector< int32_t > &&minors, std::optional< rmm::device_uvector< float > > &&weights, std::optional< rmm::device_uvector< int32_t > > &&edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edge_types, std::optional< rmm::device_uvector< int64_t > > &&edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edge_end_times, bool store_transposed)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int64_t > >, std::vector< size_t > > shuffle_ext_edges (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&majors, rmm::device_uvector< int32_t > &&minors, std::optional< rmm::device_uvector< double > > &&weights, std::optional< rmm::device_uvector< int32_t > > &&edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edge_types, std::optional< rmm::device_uvector< int64_t > > &&edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edge_end_times, bool store_transposed)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::vector< size_t > > shuffle_ext_edges (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&majors, rmm::device_uvector< int64_t > &&minors, std::optional< rmm::device_uvector< float > > &&weights, std::optional< rmm::device_uvector< int64_t > > &&edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edge_types, std::optional< rmm::device_uvector< int32_t > > &&edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edge_end_times, bool store_transposed)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::vector< size_t > > shuffle_ext_edges (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&majors, rmm::device_uvector< int64_t > &&minors, std::optional< rmm::device_uvector< double > > &&weights, std::optional< rmm::device_uvector< int64_t > > &&edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edge_types, std::optional< rmm::device_uvector< int32_t > > &&edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edge_end_times, bool store_transposed)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int64_t > >, std::vector< size_t > > shuffle_ext_edges (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&majors, rmm::device_uvector< int64_t > &&minors, std::optional< rmm::device_uvector< float > > &&weights, std::optional< rmm::device_uvector< int64_t > > &&edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edge_types, std::optional< rmm::device_uvector< int64_t > > &&edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edge_end_times, bool store_transposed)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int64_t > >, std::vector< size_t > > shuffle_ext_edges (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&majors, rmm::device_uvector< int64_t > &&minors, std::optional< rmm::device_uvector< double > > &&weights, std::optional< rmm::device_uvector< int64_t > > &&edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edge_types, std::optional< rmm::device_uvector< int64_t > > &&edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edge_end_times, bool store_transposed)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< float > > shuffle_external_vertex_value_pairs (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&vertices, rmm::device_uvector< float > &&values)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< double > > shuffle_external_vertex_value_pairs (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&vertices, rmm::device_uvector< double > &&values)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< float > > shuffle_ext_vertex_value_pairs (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&vertices, rmm::device_uvector< float > &&values)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< double > > shuffle_ext_vertex_value_pairs (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&vertices, rmm::device_uvector< double > &&values)
template rmm::device_uvector< int32_t > shuffle_external_vertices (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&d_vertices)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t > > shuffle_external_vertex_value_pairs (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&vertices, rmm::device_uvector< int32_t > &&values)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int64_t > > shuffle_external_vertex_value_pairs (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&vertices, rmm::device_uvector< int64_t > &&values)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< size_t > > shuffle_external_vertex_value_pairs (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&vertices, rmm::device_uvector< size_t > &&values)
template rmm::device_uvector< int32_t > shuffle_ext_vertices (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&d_vertices)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t > > shuffle_ext_vertex_value_pairs (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&vertices, rmm::device_uvector< int32_t > &&values)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int64_t > > shuffle_ext_vertex_value_pairs (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&vertices, rmm::device_uvector< int64_t > &&values)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< size_t > > shuffle_ext_vertex_value_pairs (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&vertices, rmm::device_uvector< size_t > &&values)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< float > > shuffle_external_vertex_value_pairs (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&vertices, rmm::device_uvector< float > &&values)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< double > > shuffle_external_vertex_value_pairs (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&vertices, rmm::device_uvector< double > &&values)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< float > > shuffle_ext_vertex_value_pairs (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&vertices, rmm::device_uvector< float > &&values)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< double > > shuffle_ext_vertex_value_pairs (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&vertices, rmm::device_uvector< double > &&values)
template rmm::device_uvector< int64_t > shuffle_external_vertices (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&d_vertices)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int32_t > > shuffle_external_vertex_value_pairs (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&vertices, rmm::device_uvector< int32_t > &&values)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t > > shuffle_external_vertex_value_pairs (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&vertices, rmm::device_uvector< int64_t > &&values)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< size_t > > shuffle_external_vertex_value_pairs (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&vertices, rmm::device_uvector< size_t > &&values)
template rmm::device_uvector< int64_t > shuffle_ext_vertices (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&d_vertices)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int32_t > > shuffle_ext_vertex_value_pairs (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&vertices, rmm::device_uvector< int32_t > &&values)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t > > shuffle_ext_vertex_value_pairs (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&vertices, rmm::device_uvector< int64_t > &&values)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< size_t > > shuffle_ext_vertex_value_pairs (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&vertices, rmm::device_uvector< size_t > &&values)
template<typename edge_t, typename ...Iters, typename ...Types>
auto view_concat(edge_property_view_t<edge_t, Iters, Types> const&... views)#
template<typename vertex_t, typename ...Iters, typename ...Types>
auto view_concat(detail::edge_major_property_view_t<vertex_t, Iters, Types> const&... views)#
template<typename vertex_t, typename ...Iters, typename ...Types>
auto view_concat(detail::edge_minor_property_view_t<vertex_t, Iters, Types> const&... views)#
template<typename vertex_t> __host__ __device__ std::enable_if_t< std::is_signed< vertex_t >::value, bool > is_valid_vertex (vertex_t num_vertices, vertex_t v)
template<typename vertex_t> __host__ __device__ std::enable_if_t< std::is_unsigned< vertex_t >::value, bool > is_valid_vertex (vertex_t num_vertices, vertex_t v)
template<typename Iterator, typename T> __device__ std::enable_if_t< thrust::detail::is_discard_iterator< Iterator >::value, void > atomic_and (Iterator iter, T value)
template<typename Iterator, typename T> __device__ std::enable_if_t< std::is_arithmetic_v< T > &&std::is_same_v< typename thrust::iterator_traits< Iterator >::value_type, T >, T > atomic_and (Iterator iter, T value)
template<typename Iterator, typename T> __device__ std::enable_if_t< is_thrust_tuple< T >::value &&std::is_same_v< typename thrust::iterator_traits< Iterator >::value_type, T >, T > atomic_and (Iterator iter, T value)
template<typename Iterator, typename T> __device__ std::enable_if_t< thrust::detail::is_discard_iterator< Iterator >::value, void > atomic_or (Iterator iter, T value)
template<typename Iterator, typename T> __device__ std::enable_if_t< std::is_arithmetic_v< T > &&std::is_same_v< typename thrust::iterator_traits< Iterator >::value_type, T >, T > atomic_or (Iterator iter, T value)
template<typename Iterator, typename T> __device__ std::enable_if_t< is_thrust_tuple< T >::value &&std::is_same_v< typename thrust::iterator_traits< Iterator >::value_type, T >, T > atomic_or (Iterator iter, T value)
template<typename Iterator, typename T> __device__ std::enable_if_t< thrust::detail::is_discard_iterator< Iterator >::value, void > atomic_add (Iterator iter, T value)
template<typename Iterator, typename T> __device__ std::enable_if_t< std::is_arithmetic_v< T > &&std::is_same_v< typename thrust::iterator_traits< Iterator >::value_type, T >, T > atomic_add (Iterator iter, T value)
template<typename Iterator, typename T> __device__ std::enable_if_t< is_thrust_tuple< typename thrust::iterator_traits< Iterator >::value_type >::value &&is_thrust_tuple< T >::value, T > atomic_add (Iterator iter, T value)
template<typename Iterator, typename T> __device__ std::enable_if_t< std::is_arithmetic_v< T > &&std::is_same_v< typename thrust::iterator_traits< Iterator >::value_type, T >, T > elementwise_atomic_cas (Iterator iter, T compare, T value)
template<typename Iterator, typename T> __device__ std::enable_if_t< is_thrust_tuple< T >::value &&std::is_same_v< typename thrust::iterator_traits< Iterator >::value_type, T >, T > elementwise_atomic_cas (Iterator iter, T compare, T value)
template<typename Iterator, typename T> __device__ std::enable_if_t< thrust::detail::is_discard_iterator< Iterator >::value, void > elementwise_atomic_min (Iterator iter, T const &value)
template<typename Iterator, typename T> __device__ std::enable_if_t< std::is_same< typename thrust::iterator_traits< Iterator >::value_type, T >::value &&std::is_arithmetic< T >::value, T > elementwise_atomic_min (Iterator iter, T const &value)
template<typename Iterator, typename T> __device__ std::enable_if_t< is_thrust_tuple< typename thrust::iterator_traits< Iterator >::value_type >::value &&is_thrust_tuple< T >::value, T > elementwise_atomic_min (Iterator iter, T const &value)
template<typename Iterator, typename T> __device__ std::enable_if_t< thrust::detail::is_discard_iterator< Iterator >::value, void > elementwise_atomic_max (Iterator iter, T const &value)
template<typename Iterator, typename T> __device__ std::enable_if_t< std::is_same< typename thrust::iterator_traits< Iterator >::value_type, T >::value &&std::is_arithmetic< T >::value, T > elementwise_atomic_max (Iterator iter, T const &value)
template<typename Iterator, typename T> __device__ std::enable_if_t< is_thrust_tuple< typename thrust::iterator_traits< Iterator >::value_type >::value &&is_thrust_tuple< T >::value, T > elementwise_atomic_max (Iterator iter, T const &value)
template<typename Iterator, typename T> __device__ void packed_bool_atomic_set (Iterator iter, T offset, bool val)
template<typename T, typename std::enable_if_t<std::is_arithmetic<T>::value>* = nullptr>
auto allocate_dataframe_buffer(size_t buffer_size, rmm::cuda_stream_view stream_view)#
template<typename T>
std::optional<dataframe_buffer_type_t<T>> try_allocate_dataframe_buffer(size_t buffer_size, rmm::cuda_stream_view stream_view)#
template<typename BufferType>
void reserve_dataframe_buffer(BufferType &buffer, size_t new_buffer_capacity, rmm::cuda_stream_view stream_view)#
template<typename BufferType>
void resize_dataframe_buffer(BufferType &buffer, size_t new_buffer_size, rmm::cuda_stream_view stream_view)#
template<typename BufferType>
void shrink_to_fit_dataframe_buffer(BufferType &buffer, rmm::cuda_stream_view stream_view)#
template<typename BufferType>
size_t size_dataframe_buffer(BufferType &buffer)#
template<typename BufferType, typename std::enable_if_t<is_arithmetic_vector<std::remove_cv_t<BufferType>, rmm::device_uvector>::value>* = nullptr>
auto get_dataframe_buffer_begin(BufferType &buffer)#
template<typename BufferType, typename std::enable_if_t<is_arithmetic_vector<std::remove_cv_t<BufferType>, rmm::device_uvector>::value>* = nullptr>
auto get_dataframe_buffer_cbegin(BufferType &buffer)#
template<typename BufferType, typename std::enable_if_t<is_arithmetic_vector<std::remove_cv_t<BufferType>, rmm::device_uvector>::value>* = nullptr>
auto get_dataframe_buffer_end(BufferType &buffer)#
template<typename BufferType, typename std::enable_if_t<is_arithmetic_vector<std::remove_cv_t<BufferType>, rmm::device_uvector>::value>* = nullptr>
auto get_dataframe_buffer_cend(BufferType &buffer)#
template<typename InputIterator, typename OutputIterator>
std::enable_if_t<std::is_arithmetic<typename std::iterator_traits<InputIterator>::value_type>::value, void> device_isend(raft::comms::comms_t const &comm, InputIterator input_first, size_t count, int dst, int base_tag, raft::comms::request_t *requests)#
template<typename InputIterator, typename OutputIterator>
std::enable_if_t<is_thrust_tuple_of_arithmetic<typename std::iterator_traits<InputIterator>::value_type>::value && is_thrust_tuple<typename std::iterator_traits<OutputIterator>::value_type>::value, void> device_isend(raft::comms::comms_t const &comm, InputIterator input_first, size_t count, int dst, int base_tag, raft::comms::request_t *requests)#
template<typename InputIterator, typename OutputIterator>
std::enable_if_t<std::is_arithmetic<typename std::iterator_traits<InputIterator>::value_type>::value, void> device_irecv(raft::comms::comms_t const &comm, OutputIterator output_first, size_t count, int src, int base_tag, raft::comms::request_t *requests)#
template<typename InputIterator, typename OutputIterator>
std::enable_if_t<is_thrust_tuple_of_arithmetic<typename std::iterator_traits<InputIterator>::value_type>::value && is_thrust_tuple<typename std::iterator_traits<OutputIterator>::value_type>::value, void> device_irecv(raft::comms::comms_t const &comm, OutputIterator output_first, size_t count, int src, int base_tag, raft::comms::request_t *requests)#
template<typename InputIterator, typename OutputIterator>
std::enable_if_t<std::is_arithmetic<typename std::iterator_traits<InputIterator>::value_type>::value, void> device_sendrecv(raft::comms::comms_t const &comm, InputIterator input_first, size_t tx_count, int dst, OutputIterator output_first, size_t rx_count, int src, rmm::cuda_stream_view stream_view)#
template<typename InputIterator, typename OutputIterator>
std::enable_if_t<is_thrust_tuple_of_arithmetic<typename std::iterator_traits<InputIterator>::value_type>::value && is_thrust_tuple<typename std::iterator_traits<OutputIterator>::value_type>::value, void> device_sendrecv(raft::comms::comms_t const &comm, InputIterator input_first, size_t tx_count, int dst, OutputIterator output_first, size_t rx_count, int src, rmm::cuda_stream_view stream_view)#
template<typename InputIterator, typename OutputIterator>
std::enable_if_t<std::is_arithmetic<typename std::iterator_traits<InputIterator>::value_type>::value, void> device_multicast_sendrecv(raft::comms::comms_t const &comm, InputIterator input_first, raft::host_span<size_t const> tx_counts, raft::host_span<size_t const> tx_displs, raft::host_span<int const> tx_dst_ranks, OutputIterator output_first, raft::host_span<size_t const> rx_counts, raft::host_span<size_t const> rx_displs, raft::host_span<int const> rx_src_ranks, rmm::cuda_stream_view stream_view)#
template<typename InputIterator, typename OutputIterator>
std::enable_if_t<is_thrust_tuple_of_arithmetic<typename std::iterator_traits<InputIterator>::value_type>::value && is_thrust_tuple<typename std::iterator_traits<OutputIterator>::value_type>::value, void> device_multicast_sendrecv(raft::comms::comms_t const &comm, InputIterator input_first, raft::host_span<size_t const> tx_counts, raft::host_span<size_t const> tx_displs, raft::host_span<int const> tx_dst_ranks, OutputIterator output_first, raft::host_span<size_t const> rx_counts, raft::host_span<size_t const> rx_displs, raft::host_span<int const> rx_src_ranks, rmm::cuda_stream_view stream_view)#
template<typename InputIterator, typename OutputIterator>
std::enable_if_t<std::is_arithmetic<typename std::iterator_traits<InputIterator>::value_type>::value, void> device_bcast(raft::comms::comms_t const &comm, InputIterator input_first, OutputIterator output_first, size_t count, int root, rmm::cuda_stream_view stream_view)#
template<typename InputIterator, typename OutputIterator>
std::enable_if_t<is_thrust_tuple_of_arithmetic<typename std::iterator_traits<InputIterator>::value_type>::value && is_thrust_tuple<typename std::iterator_traits<OutputIterator>::value_type>::value, void> device_bcast(raft::comms::comms_t const &comm, InputIterator input_first, OutputIterator output_first, size_t count, int root, rmm::cuda_stream_view stream_view)#
template<typename InputIterator, typename OutputIterator>
std::enable_if_t<std::is_arithmetic<typename std::iterator_traits<InputIterator>::value_type>::value, void> device_allreduce(raft::comms::comms_t const &comm, InputIterator input_first, OutputIterator output_first, size_t count, raft::comms::op_t op, rmm::cuda_stream_view stream_view)#
template<typename InputIterator, typename OutputIterator>
std::enable_if_t<is_thrust_tuple_of_arithmetic<typename std::iterator_traits<InputIterator>::value_type>::value && is_thrust_tuple<typename std::iterator_traits<OutputIterator>::value_type>::value, void> device_allreduce(raft::comms::comms_t const &comm, InputIterator input_first, OutputIterator output_first, size_t count, raft::comms::op_t op, rmm::cuda_stream_view stream_view)#
template<typename InputIterator, typename OutputIterator>
std::enable_if_t<std::is_arithmetic<typename std::iterator_traits<InputIterator>::value_type>::value, void> device_reduce(raft::comms::comms_t const &comm, InputIterator input_first, OutputIterator output_first, size_t count, raft::comms::op_t op, int root, rmm::cuda_stream_view stream_view)#
template<typename InputIterator, typename OutputIterator>
std::enable_if_t<is_thrust_tuple_of_arithmetic<typename std::iterator_traits<InputIterator>::value_type>::value && is_thrust_tuple<typename std::iterator_traits<OutputIterator>::value_type>::value, void> device_reduce(raft::comms::comms_t const &comm, InputIterator input_first, OutputIterator output_first, size_t count, raft::comms::op_t op, int root, rmm::cuda_stream_view stream_view)#
template<typename InputIterator, typename OutputIterator>
std::enable_if_t<std::is_arithmetic<typename std::iterator_traits<InputIterator>::value_type>::value, void> device_allgather(raft::comms::comms_t const &comm, InputIterator input_first, OutputIterator output_first, size_t sendcount, rmm::cuda_stream_view stream_view)#
template<typename InputIterator, typename OutputIterator>
std::enable_if_t<is_thrust_tuple_of_arithmetic<typename std::iterator_traits<InputIterator>::value_type>::value && is_thrust_tuple<typename std::iterator_traits<OutputIterator>::value_type>::value, void> device_allgather(raft::comms::comms_t const &comm, InputIterator input_first, OutputIterator output_first, size_t sendcount, rmm::cuda_stream_view stream_view)#
template<typename InputIterator, typename OutputIterator>
std::enable_if_t<std::is_arithmetic<typename std::iterator_traits<InputIterator>::value_type>::value, void> device_allgatherv(raft::comms::comms_t const &comm, InputIterator input_first, OutputIterator output_first, raft::host_span<size_t const> recvcounts, raft::host_span<size_t const> displacements, rmm::cuda_stream_view stream_view)#
template<typename InputIterator, typename OutputIterator>
std::enable_if_t<is_thrust_tuple_of_arithmetic<typename std::iterator_traits<InputIterator>::value_type>::value && is_thrust_tuple<typename std::iterator_traits<OutputIterator>::value_type>::value, void> device_allgatherv(raft::comms::comms_t const &comm, InputIterator input_first, OutputIterator output_first, raft::host_span<size_t const> recvcounts, raft::host_span<size_t const> displacements, rmm::cuda_stream_view stream_view)#
template<typename InputIterator, typename OutputIterator>
std::enable_if_t<std::is_arithmetic<typename std::iterator_traits<InputIterator>::value_type>::value, void> device_gatherv(raft::comms::comms_t const &comm, InputIterator input_first, OutputIterator output_first, size_t sendcount, raft::host_span<size_t const> recvcounts, raft::host_span<size_t const> displacements, int root, rmm::cuda_stream_view stream_view)#
template<typename InputIterator, typename OutputIterator>
std::enable_if_t<is_thrust_tuple_of_arithmetic<typename std::iterator_traits<InputIterator>::value_type>::value && is_thrust_tuple<typename std::iterator_traits<OutputIterator>::value_type>::value, void> device_gatherv(raft::comms::comms_t const &comm, InputIterator input_first, OutputIterator output_first, size_t sendcount, raft::host_span<size_t const> recvcounts, raft::host_span<size_t const> displacements, int root, rmm::cuda_stream_view stream_view)#
inline void device_group_start(raft::comms::comms_t const &comm)#
inline void device_group_end(raft::comms::comms_t const &comm)#
template<typename T>
std::enable_if_t<std::is_arithmetic<T>::value, T> host_scalar_allreduce(raft::comms::comms_t const &comm, T input, raft::comms::op_t op, cudaStream_t stream)#
template<typename T>
std::enable_if_t<cugraph::is_thrust_tuple_of_arithmetic<T>::value, T> host_scalar_allreduce(raft::comms::comms_t const &comm, T input, raft::comms::op_t op, cudaStream_t stream)#
template<typename T>
std::enable_if_t<std::is_arithmetic<T>::value, T> host_scalar_reduce(raft::comms::comms_t const &comm, T input, raft::comms::op_t op, int root, cudaStream_t stream)#
template<typename T>
std::enable_if_t<cugraph::is_thrust_tuple_of_arithmetic<T>::value, T> host_scalar_reduce(raft::comms::comms_t const &comm, T input, raft::comms::op_t op, int root, cudaStream_t stream)#
template<typename T>
std::enable_if_t<std::is_arithmetic<T>::value, T> host_scalar_bcast(raft::comms::comms_t const &comm, T input, int root, cudaStream_t stream)#
template<typename T>
std::enable_if_t<cugraph::is_thrust_tuple_of_arithmetic<T>::value, T> host_scalar_bcast(raft::comms::comms_t const &comm, T input, int root, cudaStream_t stream)#
template<typename T>
std::enable_if_t<std::is_arithmetic<T>::value, std::vector<T>> host_scalar_allgather(raft::comms::comms_t const &comm, T input, cudaStream_t stream)#
template<typename T>
std::enable_if_t<cugraph::is_thrust_tuple_of_arithmetic<T>::value, std::vector<T>> host_scalar_allgather(raft::comms::comms_t const &comm, T input, cudaStream_t stream)#
template<typename T>
std::enable_if_t<std::is_arithmetic<T>::value, T> host_scalar_scatter(raft::comms::comms_t const &comm, std::vector<T> const &inputs, int root, cudaStream_t stream)#
template<typename T>
std::enable_if_t<cugraph::is_thrust_tuple_of_arithmetic<T>::value, T> host_scalar_scatter(raft::comms::comms_t const &comm, std::vector<T> const &inputs, int root, cudaStream_t stream)#
template<typename T>
std::enable_if_t<std::is_arithmetic<T>::value, std::vector<T>> host_scalar_gather(raft::comms::comms_t const &comm, T input, int root, cudaStream_t stream)#
template<typename T>
std::enable_if_t<cugraph::is_thrust_tuple_of_arithmetic<T>::value, std::vector<T>> host_scalar_gather(raft::comms::comms_t const &comm, T input, int root, cudaStream_t stream)#
template<typename ValueIterator, typename value_t>
bool is_packed_bool()#
template<typename ValueIterator, typename value_t>
bool has_packed_bool_element()#
size_t packed_bools_per_word()#
size_t packed_bool_size(size_t bool_size)#
template<typename T>
uint32_t packed_bool_mask(T bool_offset)#
uint32_t packed_bool_full_mask()#
template<typename T>
uint32_t packed_bool_partial_mask(T num_set_bits)#
uint32_t packed_bool_empty_mask()#
template<typename T>
T packed_bool_offset(T bool_offset)#
template<typename ValueIterator, typename ValueToGroupIdOp>
rmm::device_uvector<size_t> groupby_and_count(ValueIterator tx_value_first, ValueIterator tx_value_last, ValueToGroupIdOp value_to_group_id_op, int num_groups, size_t mem_frugal_threshold, rmm::cuda_stream_view stream_view)#
template<typename VertexIterator, typename ValueIterator, typename KeyToGroupIdOp>
rmm::device_uvector<size_t> groupby_and_count(VertexIterator tx_key_first, VertexIterator tx_key_last, ValueIterator tx_value_first, KeyToGroupIdOp key_to_group_id_op, int num_groups, size_t mem_frugal_threshold, rmm::cuda_stream_view stream_view)#
template<typename TxValueIterator>
auto shuffle_values(raft::comms::comms_t const &comm, TxValueIterator tx_value_first, raft::host_span<size_t const> tx_value_counts, rmm::cuda_stream_view stream_view)#
template<typename TxValueIterator>
auto shuffle_values(raft::comms::comms_t const &comm, TxValueIterator tx_value_first, raft::host_span<size_t const> tx_value_counts, size_t alignment, std::optional<typename thrust::iterator_traits<TxValueIterator>::value_type> fill_value, rmm::cuda_stream_view stream_view)#
template<typename TxValueIterator>
auto shuffle_and_unique_segment_sorted_values(raft::comms::comms_t const &comm, TxValueIterator segment_sorted_tx_value_first, raft::host_span<size_t const> tx_value_counts, rmm::cuda_stream_view stream_view)#
template<typename ValueIterator, typename ValueToGPUIdOp>
auto groupby_gpu_id_and_shuffle_values(raft::comms::comms_t const &comm, ValueIterator tx_value_first, ValueIterator tx_value_last, ValueToGPUIdOp value_to_gpu_id_op, rmm::cuda_stream_view stream_view)#
template<typename VertexIterator, typename ValueIterator, typename KeyToGPUIdOp>
auto groupby_gpu_id_and_shuffle_kv_pairs(raft::comms::comms_t const &comm, VertexIterator tx_key_first, VertexIterator tx_key_last, ValueIterator tx_value_first, KeyToGPUIdOp key_to_gpu_id_op, rmm::cuda_stream_view stream_view)#
template<typename TupleType>
size_t sum_thrust_tuple_element_sizes()#
template<typename TupleType>
size_t min_thrust_tuple_element_sizes()#
template<typename TupleType>
size_t max_thrust_tuple_element_sizes()#
template<typename TupleType>
auto thrust_tuple_to_std_tuple(TupleType tup)#
template<typename TupleType>
auto std_tuple_to_thrust_tuple(TupleType tup)#
template<typename T>
auto to_thrust_tuple(T scalar_value)#
template<typename ...Ts>
auto to_thrust_tuple(thrust::tuple<Ts...> tuple_value)#
template<typename Iterator, typename std::enable_if_t<std::is_arithmetic_v<typename std::iterator_traits<Iterator>::value_type>>* = nullptr>
auto to_thrust_iterator_tuple(Iterator iter)#
template<typename T, size_t I, typename std::enable_if_t<std::is_arithmetic_v<T>>* = nullptr>
auto thrust_tuple_get_or_identity(T val)#
template<typename Iterator, size_t I, typename std::enable_if_t<std::is_arithmetic_v<typename thrust::iterator_traits<Iterator>::value_type>>* = nullptr>
auto thrust_tuple_get_or_identity(Iterator val)#
template<typename ...TupleTypes>
auto thrust_tuple_cat(TupleTypes... tups)#
template<typename TupleType>
TupleType thrust_tuple_of_arithmetic_numeric_limits_lowest()#
template<typename TupleType>
TupleType thrust_tuple_of_arithmetic_numeric_limits_max()#
template<typename T, typename ...Ts>
decltype(auto) get_first_of_pack(T &&t, Ts&&...)#

变量

template<typename vertex_t>
vertex_t invalid_vertex_id_v = invalid_vertex_id<vertex_t>::value#
template<typename edge_t>
edge_t invalid_edge_id_v = invalid_edge_id<edge_t>::value#
template<typename component_t>
component_t invalid_component_id_v = invalid_component_id<component_t>::value#
template<typename GraphViewType, typename key_t, typename EdgePartitionSrcValueInputWrapper, typename EdgePartitionDstValueInputWrapper, typename EdgePartitionEdgeValueInputWrapper, typename EdgeOp, typename T>
struct cast_edge_op_bool_to_integer#
struct centrality_algorithm_metadata_t#
#include <algorithms.hpp>

关于中心性算法之一执行情况的元数据。

template<typename TupleType>
struct compute_thrust_tuple_element_sizes#
template<typename T>
struct dataframe_buffer_const_iterator_type#
template<typename ...Ts>
struct dataframe_buffer_const_iterator_type<thrust::tuple<Ts...>>#
template<typename T>
struct dataframe_buffer_iterator_type#
template<typename ...Ts>
struct dataframe_buffer_iterator_type<thrust::tuple<Ts...>>#
template<typename T>
struct dataframe_buffer_type#
template<typename vertex_t>
class Dendrogram#
template<typename vertex_t, typename tag_t = void, bool src_major = false, bool multi_gpu = false, bool sorted_unique = false>
class edge_bucket_t#

公有函数

template<typename tag_type = tag_t, std::enable_if_t<std::is_same_v<tag_type, void>>* = nullptr>
inline void insert(vertex_t src, vertex_t dst)#

简要描述:插入一条边到桶中

参数
  • src – 边的源顶点。

  • dst – 边的目标顶点。

template<typename tag_type = tag_t, std::enable_if_t<!std::is_same_v<tag_type, void>>* = nullptr>
inline void insert(vertex_t src, vertex_t dst, tag_type tag)#

简要描述:插入一条带标签的边到桶中

参数
  • src – 边的源顶点。

  • dst – 边的目标顶点。

  • tag – 边标签。

template<typename VertexIterator, typename tag_type = tag_t, std::enable_if_t<std::is_same_v<tag_type, void>>* = nullptr>
inline void insert(VertexIterator src_first, VertexIterator src_last, VertexIterator dst_first)#

简要描述:插入多条边到桶中

参数
  • src_first – 指向设备内存中边源顶点列表的第一个(包含)元素的迭代器。

  • src_last – 指向设备内存中存储的边源顶点列表的最后一个(不包含)元素的迭代器。

  • dst_first – 指向设备内存中边目标顶点列表的第一个(包含)元素的迭代器。

template<typename VertexIterator, typename TagIterator, typename tag_type = tag_t, std::enable_if_t<!std::is_same_v<tag_type, void>>* = nullptr>
inline void insert(VertexIterator src_first, VertexIterator src_last, VertexIterator dst_first, TagIterator tag_first)#

简要描述:插入多条带标签的边到桶中

参数
  • src_first – 指向设备内存中边源顶点列表的第一个(包含)元素的迭代器。

  • src_last – 指向设备内存中存储的边源顶点列表的最后一个(不包含)元素的迭代器。

  • dst_first – 指向设备内存中边目标顶点列表的第一个(包含)元素的迭代器。

  • tag_first – 指向设备内存中边标签列表的第一个(包含)元素的迭代器。

class edge_dst_dummy_property_t#
template<typename GraphViewType, typename T>
class edge_dst_property_t#
class edge_dummy_property_t#
class edge_dummy_property_view_t#
template<typename vertex_t, typename edge_t, bool multi_gpu, typename Enable = void>
class edge_partition_device_view_t#
template<typename vertex_t, typename edge_t, bool multi_gpu>
class edge_partition_device_view_t<vertex_t, edge_t, multi_gpu, std::enable_if_t<multi_gpu>> : public cugraph::detail::edge_partition_device_view_base_t<vertex_t, edge_t>#
template<typename vertex_t, typename edge_t, bool multi_gpu>
class edge_partition_device_view_t<vertex_t, edge_t, multi_gpu, std::enable_if_t<!multi_gpu>> : public cugraph::detail::edge_partition_device_view_base_t<vertex_t, edge_t>#
template<typename vertex_t, typename edge_t, bool multi_gpu, typename Enable = void>
class edge_partition_view_t#
template<typename vertex_t, typename edge_t, bool multi_gpu>
class edge_partition_view_t<vertex_t, edge_t, multi_gpu, std::enable_if_t<multi_gpu>> : public cugraph::detail::edge_partition_view_base_t<vertex_t, edge_t>#
template<typename vertex_t, typename edge_t, bool multi_gpu>
class edge_partition_view_t<vertex_t, edge_t, multi_gpu, std::enable_if_t<!multi_gpu>> : public cugraph::detail::edge_partition_view_base_t<vertex_t, edge_t>#
template<typename GraphViewType, typename T>
class edge_property_t#
template<typename edge_t, typename ValueIterator, typename value_t = typename thrust::iterator_traits<ValueIterator>::value_type>
class edge_property_view_t#
template<typename GraphViewType, typename EdgeValueType, typename Enable = void>
struct edge_property_view_type#
template<typename GraphViewType, typename EdgeValueType>
struct edge_property_view_type<GraphViewType, EdgeValueType, std::enable_if_t<std::is_same_v<EdgeValueType, cuda::std::nullopt_t>>>#
template<typename GraphViewType, typename EdgeValueType>
struct edge_property_view_type<GraphViewType, EdgeValueType, std::enable_if_t<!std::is_same_v<EdgeValueType, cuda::std::nullopt_t>>>#
class edge_src_dummy_property_t#
template<typename GraphViewType, typename T>
class edge_src_property_t#
template<typename vertex_t, typename edge_t>
struct extract_triangles_endpoints#
template<typename vertex_t, typename edge_t, bool multi_gpu, typename Enable = void>
struct graph_meta_t#
template<typename vertex_t, typename edge_t, bool multi_gpu>
struct graph_meta_t<vertex_t, edge_t, multi_gpu, std::enable_if_t<multi_gpu>>#
template<typename vertex_t, typename edge_t, bool multi_gpu>
struct graph_meta_t<vertex_t, edge_t, multi_gpu, std::enable_if_t<!multi_gpu>>#
struct graph_properties_t#
template<typename vertex_t, typename edge_t, bool store_transposed, bool multi_gpu, typename Enable = void>
class graph_t#
template<typename vertex_t, typename edge_t, bool store_transposed, bool multi_gpu>
class graph_t<vertex_t, edge_t, store_transposed, multi_gpu, std::enable_if_t<multi_gpu>> : public cugraph::detail::graph_base_t<vertex_t, edge_t>#
template<typename vertex_t, typename edge_t, bool store_transposed, bool multi_gpu>
class graph_t<vertex_t, edge_t, store_transposed, multi_gpu, std::enable_if_t<!multi_gpu>> : public cugraph::detail::graph_base_t<vertex_t, edge_t>#
template<typename vertex_t, typename edge_t, bool store_transposed, bool multi_gpu, typename Enable = void>
struct graph_view_meta_t#
template<typename vertex_t, typename edge_t, bool store_transposed, bool multi_gpu>
struct graph_view_meta_t<vertex_t, edge_t, store_transposed, multi_gpu, std::enable_if_t<multi_gpu>>#
template<typename vertex_t, typename edge_t, bool store_transposed, bool multi_gpu>
struct graph_view_meta_t<vertex_t, edge_t, store_transposed, multi_gpu, std::enable_if_t<!multi_gpu>>#
template<typename vertex_t, typename edge_t, bool store_transposed, bool multi_gpu, typename Enable = void>
class graph_view_t#
template<typename vertex_t, typename edge_t, bool store_transposed, bool multi_gpu>
class graph_view_t<vertex_t, edge_t, store_transposed, multi_gpu, std::enable_if_t<multi_gpu>> : public cugraph::detail::graph_base_t<vertex_t, edge_t>#
template<typename vertex_t, typename edge_t, bool store_transposed, bool multi_gpu>
class graph_view_t<vertex_t, edge_t, store_transposed, multi_gpu, std::enable_if_t<!multi_gpu>> : public cugraph::detail::graph_base_t<vertex_t, edge_t>#
template<typename component_t>
struct invalid_component_id : public cugraph::invalid_idx<component_t>#
template<typename edge_t>
struct invalid_edge_id : public cugraph::invalid_idx<edge_t>#
template<typename T, typename Enable = void>
struct invalid_idx#
template<typename T>
struct invalid_idx<T, typename std::enable_if_t<std::is_integral<T>::value && std::is_signed<T>::value>> : public std::integral_constant<T, -1>#
template<typename T>
struct invalid_idx<T, typename std::enable_if_t<std::is_integral<T>::value && std::is_unsigned<T>::value>> : public std::integral_constant<T, std::numeric_limits<T>::max()>#
template<typename vertex_t>
struct invalid_vertex_id : public cugraph::invalid_idx<vertex_t>#
template<typename T>
struct is_arithmetic_or_thrust_tuple_of_arithmetic : public std::integral_constant<bool, std::is_arithmetic_v<T>>#
template<typename ...Ts>
struct is_arithmetic_or_thrust_tuple_of_arithmetic<thrust::tuple<Ts...>> : public std::integral_constant<bool, std::is_arithmetic_v<thrust::tuple<Ts...>>>, public std::integral_constant<bool, is_thrust_tuple_of_arithmetic<thrust::tuple<Ts...>>::value>#
template<typename T, template<typename> typename Vector>
struct is_arithmetic_vector : public std::false_type#
template<template<typename> typename Vector, typename T>
struct is_arithmetic_vector<Vector<T>, Vector> : public std::false_type, public std::integral_constant<bool, std::is_arithmetic_v<T>>#
template<typename vertex_t, typename edge_t, typename weight_t>
struct is_candidate#
template<typename vertex_t, typename edge_t, typename weight_t>
struct is_candidate_legacy#
template<typename edge_t>
struct is_k_or_greater_t#
template<typename Src, typename ...Types>
struct is_one_of#
template<typename Src>
struct is_one_of<Src>#
template<typename Src, typename Head, typename ...Tail>
struct is_one_of<Src, Head, Tail...>#
template<typename T>
struct is_std_tuple : public std::false_type#
template<typename ...Ts>
struct is_std_tuple<std::tuple<Ts...>> : public std::false_type, public std::true_type#
template<typename T>
struct is_std_tuple_of_arithmetic_vectors : public std::false_type#
template<typename ...Ts>
struct is_std_tuple_of_arithmetic_vectors<std::tuple<rmm::device_uvector<Ts>...>> : public std::false_type#
template<typename T>
struct is_thrust_tuple : public std::false_type#
template<typename ...Ts>
struct is_thrust_tuple<thrust::tuple<Ts...>> : public std::false_type, public std::true_type#
template<typename TupleType>
struct is_thrust_tuple_of_arithmetic : public std::false_type#
template<typename ...Ts>
struct is_thrust_tuple_of_arithmetic<thrust::tuple<Ts...>> : public std::false_type#
template<typename TupleType>
struct is_thrust_tuple_of_integral : public std::false_type#
template<typename ...Ts>
struct is_thrust_tuple_of_integral<thrust::tuple<Ts...>> : public std::false_type#
template<typename vertex_t, typename edge_t>
struct is_vertex_edge_combo#
template<typename vertex_t, typename edge_t>
struct is_vertex_edge_combo_legacy#
template<typename vertex_t, typename tag_t = void, bool multi_gpu = false, bool sorted_unique = false>
class key_bucket_t#

公有函数

template<typename tag_type = tag_t, std::enable_if_t<std::is_same_v<tag_type, void>>* = nullptr>
inline void insert(vertex_t vertex)#

@ brief 向桶中插入一个顶点

参数

vertex – 要插入的顶点

template<typename tag_type = tag_t, std::enable_if_t<!std::is_same_v<tag_type, void>>* = nullptr>
inline void insert(thrust::tuple<vertex_t, tag_type> key)#

@ brief 向桶中插入一对(顶点, 标签)

参数
  • vertex – (顶点, 标签)对中的顶点,用于插入

  • tag – (顶点, 标签)对中的标签,用于插入

template<typename VertexIterator, typename tag_type = tag_t, std::enable_if_t<std::is_same_v<tag_type, void>>* = nullptr>
inline void insert(VertexIterator vertex_first, VertexIterator vertex_last)#

@ brief 向桶中插入一个顶点列表

参数
  • vertex_first – 指向存储在设备内存中的顶点列表的第一个(包含)元素的迭代器。

  • vertex_last – 指向存储在设备内存中的顶点列表的最后一个(不包含)元素的迭代器。

template<typename KeyIterator, typename tag_type = tag_t, std::enable_if_t<!std::is_same_v<tag_type, void>>* = nullptr>
inline void insert(KeyIterator key_first, KeyIterator key_last)#

@ brief 向桶中插入一个(顶点, 标签)对列表

参数
  • key_first – 指向存储在设备内存中的(顶点,标签)对列表的第一个(包含)元素的迭代器。

  • key_last – 指向存储在设备内存中的(顶点,标签)对列表的最后一个(不包含)元素的迭代器。

template<typename key_t, bool use_binary_search = true>
class key_store_t#
template<typename key_t, typename value_t, bool use_binary_search = true>
class kv_store_t#
struct logic_error : public raft::exception#
#include <error.hpp>

当逻辑前置条件被违反时抛出的异常。

不应直接抛出此异常,而是由 CUGRAPH_EXPECTS 和 CUGRAPH_FAIL 宏抛出。

template<typename edge_id_t, typename edge_type_t, typename vertex_t, typename value_t = thrust::tuple<vertex_t, vertex_t>>
class lookup_container_t#
template<typename edge_id_t, typename edge_type_t, typename vertex_t, typename value_t>
struct lookup_container_impl#
class partition_manager#
#include <partition_manager.hpp>

管理图划分与 GPU 划分之间的映射

template<typename vertex_t>
class partition_t#
#include <graph_view.hpp>

存储图顶点/边的划分映射

我们需要划分一维顶点数组和二维边矩阵(如果未转置,主轴为主节点;如果已转置,主轴为目标节点)。

假设我们有 P 个 GPU。大小为 V 的一维顶点数组被划分为 P 个线性分区;每个分区的大小接近 V / P。

假设 P = major_comm_size * minor_comm_size。每个 GPU 将具有 (major_comm_rank, minor_comm_rank)。cugraph::partition_manager 负责将 (major_comm_rank, minor_comm_rank) 映射到全局秩。二维边矩阵首先沿主轴划分为 P 个切片,然后每个切片将沿次轴进一步划分为 minor_comm_size 个矩形。一个 GPU 将负责 minor_comm_size 个矩形分区。

更具体地说,具有 (major_comm_rank, minor_comm_rank) 的 GPU 将负责 minor_comm_size 个矩形分区,范围为 [a_i, b_i) 乘以 [c, d) (i = [0, minor_comm_size),其中 a_i = vertex_partition_range_offsets[major_comm_size * i + major_comm_rank], b_i = vertex_partition_range_offsets[major_comm_size * i + major_comm_rank + 1], c = vertex_partition_range_offsets[major_comm_size * minor_comm_rank], d = vertex_partition_range_offsets[major_comm_size * (minor_comm_rank + 1)]。

这里,vertex_partition_range_offsets(大小 = P + 1)存储顶点 ID 范围 [0, # 顶点) 的一维划分。前 P 个值存储每个 GPU 分区的起始(包含)。最后一个值标记最后一个 GPU 分区的结束(不包含)(它与 # 顶点一致)。

有关更多详细信息,请参阅 E. G. Boman 等人的著作,“使用二维图划分在大规模无标度图上进行可伸缩矩阵计算”,2013 年。

模板参数

vertex_t – 顶点的 ID 类型

template<typename T, template<typename> typename Op>
struct property_op : public Op<T>#
template<typename ...Args, template<typename> typename Op>
struct property_op<thrust::tuple<Args...>, Op> : public Op<thrust::tuple<Args...>>#
template<typename vertex_t, typename edge_t, bool multi_gpu, typename Enable = void>
struct renumber_meta_t#
template<typename vertex_t, typename edge_t, bool multi_gpu>
struct renumber_meta_t<vertex_t, edge_t, multi_gpu, std::enable_if_t<multi_gpu>>#
template<typename vertex_t, typename edge_t, bool multi_gpu>
struct renumber_meta_t<vertex_t, edge_t, multi_gpu, std::enable_if_t<!multi_gpu>>#
struct sampling_flags_t#

公共成员

prior_sources_behavior_t prior_sources_behavior = {}#

指定如何处理先前的源。默认为 DEFAULT。

bool return_hops = {false}#

指定是否应返回跳数信息。默认为 false。

bool dedupe_sources = {false}#

如果为 true,则如果顶点 v 在跳 X 中以相同标签多次作为目标出现,它只会作为下一跳的源(针对每个标签)传递一次。默认为 false。

bool with_replacement = {true}#

指定随机抽样是进行有放回抽样 (true) 还是无放回抽样 (false)。默认为 true。

struct sampling_params_t#
template<typename TupleType, size_t I>
struct thrust_tuple_get#
template<typename T>
struct thrust_tuple_size_or_one : public std::integral_constant<size_t, 1>#
template<typename ...Ts>
struct thrust_tuple_size_or_one<thrust::tuple<Ts...>> : public std::integral_constant<size_t, 1>, public std::integral_constant<size_t, thrust::tuple_size<thrust::tuple<Ts...>>::value>#
template<typename vertex_t, typename tag_t = void, bool multi_gpu = false, bool sorted_unique_key_bucket = false>
class vertex_frontier_t#
template<typename GraphViewType, bool multi_gpu, typename Enable = void>
class vertex_partition_device_view_t#
template<typename vertex_t, bool multi_gpu>
class vertex_partition_device_view_t<vertex_t, multi_gpu, std::enable_if_t<multi_gpu>> : public cugraph::detail::vertex_partition_device_view_base_t<vertex_t>#
template<typename vertex_t, bool multi_gpu>
class vertex_partition_device_view_t<vertex_t, multi_gpu, std::enable_if_t<!multi_gpu>> : public cugraph::detail::vertex_partition_device_view_base_t<vertex_t>#
template<typename vertex_t, bool multi_gpu, typename Enable = void>
class vertex_partition_view_t#
template<typename vertex_t, bool multi_gpu>
class vertex_partition_view_t<vertex_t, multi_gpu, std::enable_if_t<multi_gpu>> : public cugraph::detail::vertex_partition_view_base_t<vertex_t>#
template<typename vertex_t, bool multi_gpu>
class vertex_partition_view_t<vertex_t, multi_gpu, std::enable_if_t<!multi_gpu>> : public cugraph::detail::vertex_partition_view_base_t<vertex_t>#
namespace c_api#

函数

template<typename vertex_t, typename edge_t, typename weight_t, typename edge_type_t, bool store_transposed, typename functor_t>
decltype(auto) multi_gpu_dispatcher(bool multi_gpu, functor_t &functor)#
template<typename vertex_t, typename edge_t, typename weight_t, typename edge_type_t, typename functor_t>
decltype(auto) transpose_dispatcher(bool store_transposed, bool multi_gpu, functor_t &functor)#
template<typename vertex_t, typename edge_t, typename weight_t, typename functor_t>
decltype(auto) edge_type_type_dispatcher(cugraph_data_type_id_t edge_type_type, bool store_transposed, bool multi_gpu, functor_t &functor)#
template<typename vertex_t, typename edge_t, typename functor_t>
decltype(auto) weight_dispatcher(cugraph_data_type_id_t weight_type, cugraph_data_type_id_t edge_type_type, bool store_transposed, bool multi_gpu, functor_t &functor)#
template<typename vertex_t, typename functor_t>
decltype(auto) edge_dispatcher(cugraph_data_type_id_t edge_type, cugraph_data_type_id_t weight_type, cugraph_data_type_id_t edge_type_type, bool store_transposed, bool multi_gpu, functor_t &functor)#
template<typename functor_t>
inline decltype(auto) vertex_dispatcher(cugraph_data_type_id_t vertex_type, cugraph_data_type_id_t edge_type, cugraph_data_type_id_t weight_type, cugraph_data_type_id_t edge_type_type, bool store_transposed, bool multi_gpu, functor_t &functor)#
template<typename vertex_t, typename edge_t, typename weight_t, bool store_transposed, bool multi_gpu>
cugraph_error_code_t transpose_storage(raft::handle_t const &handle, cugraph_graph_t *graph, cugraph_error_t *error)#
template<typename vertex_t, typename edge_t>
rmm::device_uvector<vertex_t> expand_sparse_offsets(raft::device_span<edge_t const> offsets, vertex_t base_vertex_id, rmm::cuda_stream_view const &stream)#
template<typename GraphViewType, typename T>
edge_property_t<GraphViewType, T> create_constant_edge_property(raft::handle_t const &handle, GraphViewType const &graph_view, T constant_value)#
template edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, float > create_constant_edge_property (raft::handle_t const &handle, cugraph::graph_view_t< int32_t, int32_t, false, true > const &graph_view, float constant_value)
template edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, float > create_constant_edge_property (raft::handle_t const &handle, cugraph::graph_view_t< int64_t, int64_t, false, true > const &graph_view, float constant_value)
template edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, true >, float > create_constant_edge_property (raft::handle_t const &handle, cugraph::graph_view_t< int32_t, int32_t, true, true > const &graph_view, float constant_value)
template edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, float > create_constant_edge_property (raft::handle_t const &handle, cugraph::graph_view_t< int64_t, int64_t, true, true > const &graph_view, float constant_value)
template edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, double > create_constant_edge_property (raft::handle_t const &handle, cugraph::graph_view_t< int32_t, int32_t, false, true > const &graph_view, double constant_value)
template edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, double > create_constant_edge_property (raft::handle_t const &handle, cugraph::graph_view_t< int64_t, int64_t, false, true > const &graph_view, double constant_value)
template edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, true >, double > create_constant_edge_property (raft::handle_t const &handle, cugraph::graph_view_t< int32_t, int32_t, true, true > const &graph_view, double constant_value)
template edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, true >, double > create_constant_edge_property (raft::handle_t const &handle, cugraph::graph_view_t< int64_t, int64_t, true, true > const &graph_view, double constant_value)
template rmm::device_uvector< int32_t > expand_sparse_offsets (raft::device_span< int32_t const > offsets, int32_t base_vertex_id, rmm::cuda_stream_view const &stream)
template rmm::device_uvector< int32_t > expand_sparse_offsets (raft::device_span< int64_t const > offsets, int32_t base_vertex_id, rmm::cuda_stream_view const &stream)
template rmm::device_uvector< int64_t > expand_sparse_offsets (raft::device_span< int64_t const > offsets, int64_t base_vertex_id, rmm::cuda_stream_view const &stream)
template rmm::device_uvector< int32_t > expand_sparse_offsets (raft::device_span< size_t const > offsets, int32_t base_vertex_id, rmm::cuda_stream_view const &stream)
template rmm::device_uvector< int64_t > expand_sparse_offsets (raft::device_span< size_t const > offsets, int64_t base_vertex_id, rmm::cuda_stream_view const &stream)
template edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, float > create_constant_edge_property (raft::handle_t const &handle, cugraph::graph_view_t< int32_t, int32_t, false, false > const &graph_view, float constant_value)
template edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, float > create_constant_edge_property (raft::handle_t const &handle, cugraph::graph_view_t< int64_t, int64_t, false, false > const &graph_view, float constant_value)
template edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, false >, float > create_constant_edge_property (raft::handle_t const &handle, cugraph::graph_view_t< int32_t, int32_t, true, false > const &graph_view, float constant_value)
template edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, float > create_constant_edge_property (raft::handle_t const &handle, cugraph::graph_view_t< int64_t, int64_t, true, false > const &graph_view, float constant_value)
template edge_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, double > create_constant_edge_property (raft::handle_t const &handle, cugraph::graph_view_t< int32_t, int32_t, false, false > const &graph_view, double constant_value)
template edge_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, double > create_constant_edge_property (raft::handle_t const &handle, cugraph::graph_view_t< int64_t, int64_t, false, false > const &graph_view, double constant_value)
template edge_property_t< cugraph::graph_view_t< int32_t, int32_t, true, false >, double > create_constant_edge_property (raft::handle_t const &handle, cugraph::graph_view_t< int32_t, int32_t, true, false > const &graph_view, double constant_value)
template edge_property_t< cugraph::graph_view_t< int64_t, int64_t, true, false >, double > create_constant_edge_property (raft::handle_t const &handle, cugraph::graph_view_t< int64_t, int64_t, true, false > const &graph_view, double constant_value)
template<typename functor_t, typename result_t>
cugraph_error_code_t run_algorithm(::cugraph_graph_t const *graph, functor_t &functor, result_t *result, ::cugraph_error_t **error)#

变量

size_t data_type_sz[] = {1, 2, 4, 8, 1, 2, 4, 8, 4, 8, 8, 1}#
struct abstract_functor#

继承者: cugraph::c_api::bfs_functor, cugraph::c_api::extract_paths_functor, cugraph::c_api::node2vec_functor, cugraph::c_api::sssp_functor

struct bfs_functor : public cugraph::c_api::abstract_functor#
struct cugraph_centrality_result_t#
struct cugraph_clustering_result_t#
struct cugraph_coo_list_t#
struct cugraph_coo_t#
struct cugraph_core_result_t#
struct cugraph_degrees_result_t#
struct cugraph_edge_centrality_result_t#
struct cugraph_edge_property_t#
struct cugraph_edge_property_view_t#
struct cugraph_edgelist_t#
struct cugraph_error_t#
struct cugraph_extract_paths_result_t#
struct cugraph_graph_t#
struct cugraph_hierarchical_clustering_result_t#
struct cugraph_hits_result_t#
struct cugraph_induced_subgraph_result_t#
struct cugraph_k_core_result_t#
struct cugraph_labeling_result_t#
struct cugraph_layout_result_t#
struct cugraph_lookup_container_t#
struct cugraph_lookup_result_t#
struct cugraph_paths_result_t#
struct cugraph_random_walk_result_t#
struct cugraph_resource_handle_t#
struct cugraph_rng_state_t#
struct cugraph_sample_result_t#
struct cugraph_sampling_options_t#
struct cugraph_similarity_result_t#
struct cugraph_triangle_count_result_t#
struct cugraph_type_erased_device_array_t#
struct cugraph_type_erased_device_array_view_t#
struct cugraph_type_erased_host_array_t#
struct cugraph_type_erased_host_array_view_t#
struct cugraph_vertex_pairs_t#
struct cugraph_vertex_property_t#
struct cugraph_vertex_property_view_t#
struct extract_paths_functor : public cugraph::c_api::abstract_functor#
struct node2vec_functor : public cugraph::c_api::abstract_functor#
struct sampling_flags_t#
struct sssp_functor : public cugraph::c_api::abstract_functor#
namespace detail#

函数

template<typename vertex_t>
std::tuple<rmm::device_uvector<vertex_t>, rmm::device_uvector<size_t>> shuffle_vertex_ids_and_offsets(raft::handle_t const &handle, rmm::device_uvector<vertex_t> &&vertices, raft::device_span<size_t const> offsets)#
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< size_t > > shuffle_vertex_ids_and_offsets (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&vertices, raft::device_span< size_t const > offsets)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< size_t > > shuffle_vertex_ids_and_offsets (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&vertices, raft::device_span< size_t const > offsets)
template<typename key_t, typename value_t>
void sort_by_key(raft::handle_t const &handle, raft::device_span<key_t> keys, raft::device_span<value_t> values)#
template<typename key_t, typename value_t>
void sort_tuple_by_key(raft::handle_t const &handle, raft::device_span<key_t> keys, std::tuple<raft::device_span<value_t>, raft::device_span<value_t>> values)#
template void sort_by_key (raft::handle_t const &handle, raft::device_span< int32_t > keys, raft::device_span< int32_t > values)
template void sort_by_key (raft::handle_t const &handle, raft::device_span< int64_t > keys, raft::device_span< int64_t > values)
template void sort_by_key (raft::handle_t const &handle, raft::device_span< int32_t > keys, raft::device_span< float > values)
template void sort_by_key (raft::handle_t const &handle, raft::device_span< int64_t > keys, raft::device_span< float > values)
template void sort_by_key (raft::handle_t const &handle, raft::device_span< int32_t > keys, raft::device_span< double > values)
template void sort_by_key (raft::handle_t const &handle, raft::device_span< int64_t > keys, raft::device_span< double > values)
template void sort_tuple_by_key (raft::handle_t const &handle, raft::device_span< int32_t > keys, std::tuple< raft::device_span< float >, raft::device_span< float > > values)
template void sort_tuple_by_key (raft::handle_t const &handle, raft::device_span< int32_t > keys, std::tuple< raft::device_span< double >, raft::device_span< double > > values)
template void sort_tuple_by_key (raft::handle_t const &handle, raft::device_span< int64_t > keys, std::tuple< raft::device_span< float >, raft::device_span< float > > values)
template void sort_tuple_by_key (raft::handle_t const &handle, raft::device_span< int64_t > keys, std::tuple< raft::device_span< double >, raft::device_span< double > > values)
template<typename vertex_t, typename weight_t>
std::tuple<rmm::device_uvector<size_t>, rmm::device_uvector<vertex_t>, rmm::device_uvector<vertex_t>, std::optional<rmm::device_uvector<weight_t>>> reorder_extracted_egonets(raft::handle_t const &handle, rmm::device_uvector<size_t> &&source_indices, rmm::device_uvector<size_t> &&offsets, rmm::device_uvector<vertex_t> &&edge_srcs, rmm::device_uvector<vertex_t> &&edge_dsts, std::optional<rmm::device_uvector<weight_t>> &&edge_weights)#
template std::tuple< rmm::device_uvector< size_t >, rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > > > reorder_extracted_egonets (raft::handle_t const &handle, rmm::device_uvector< size_t > &&source_indices, rmm::device_uvector< size_t > &&offsets, rmm::device_uvector< int32_t > &&edge_srcs, rmm::device_uvector< int32_t > &&edge_dsts, std::optional< rmm::device_uvector< float > > &&edge_weights)
template std::tuple< rmm::device_uvector< size_t >, rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > > > reorder_extracted_egonets (raft::handle_t const &handle, rmm::device_uvector< size_t > &&source_indices, rmm::device_uvector< size_t > &&offsets, rmm::device_uvector< int32_t > &&edge_srcs, rmm::device_uvector< int32_t > &&edge_dsts, std::optional< rmm::device_uvector< double > > &&edge_weights)
template std::tuple< rmm::device_uvector< size_t >, rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > > > reorder_extracted_egonets (raft::handle_t const &handle, rmm::device_uvector< size_t > &&source_indices, rmm::device_uvector< size_t > &&offsets, rmm::device_uvector< int64_t > &&edge_srcs, rmm::device_uvector< int64_t > &&edge_dsts, std::optional< rmm::device_uvector< float > > &&edge_weights)
template std::tuple< rmm::device_uvector< size_t >, rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > > > reorder_extracted_egonets (raft::handle_t const &handle, rmm::device_uvector< size_t > &&source_indices, rmm::device_uvector< size_t > &&offsets, rmm::device_uvector< int64_t > &&edge_srcs, rmm::device_uvector< int64_t > &&edge_dsts, std::optional< rmm::device_uvector< double > > &&edge_weights)
namespace dense#

函数

template<typename index_t, typename weight_t>
weight_t hungarian(raft::handle_t const &handle, weight_t const *costs, index_t num_rows, index_t num_cols, index_t *assignment)#
template<typename index_t, typename weight_t>
weight_t hungarian(raft::handle_t const &handle, weight_t const *costs, index_t num_rows, index_t num_cols, index_t *assignment, weight_t epsilon)#
template int32_t hungarian< int32_t, int32_t > (raft::handle_t const &, int32_t const *, int32_t, int32_t, int32_t *)
template float hungarian< int32_t, float > (raft::handle_t const &, float const *, int32_t, int32_t, int32_t *)
template double hungarian< int32_t, double > (raft::handle_t const &, double const *, int32_t, int32_t, int32_t *)
template int32_t hungarian< int32_t, int32_t > (raft::handle_t const &, int32_t const *, int32_t, int32_t, int32_t *, int32_t)
template float hungarian< int32_t, float > (raft::handle_t const &, float const *, int32_t, int32_t, int32_t *, float)
template double hungarian< int32_t, double > (raft::handle_t const &, double const *, int32_t, int32_t, int32_t *, double)
namespace detail#

类型别名

template<typename T>
using optional_dataframe_buffer_type_t = typename optional_dataframe_buffer_type<T>::type#
typedef cuco::storage<1> cuco_storage_type#

cuco 窗口存储类型

枚举

enum class coefficient_t#

enumerator JACCARD#
enumerator SORENSEN#
enumerator OVERLAP#
enumerator COSINE#

函数

template<typename vertex_t, typename edge_t, typename weight_t, bool multi_gpu>
std::tuple<rmm::device_uvector<vertex_t>, rmm::device_uvector<edge_t>> brandes_bfs(raft::handle_t const &handle, graph_view_t<vertex_t, edge_t, false, multi_gpu> const &graph_view, std::optional<edge_property_view_t<edge_t, weight_t const*>> edge_weight_view, vertex_frontier_t<vertex_t, void, multi_gpu, true> &vertex_frontier, bool do_expensive_check)#
template<typename vertex_t, typename edge_t, typename weight_t, bool multi_gpu>
void accumulate_vertex_results(raft::handle_t const &handle, graph_view_t<vertex_t, edge_t, false, multi_gpu> const &graph_view, std::optional<edge_property_view_t<edge_t, weight_t const*>> edge_weight_view, raft::device_span<weight_t> centralities, rmm::device_uvector<vertex_t> &&distances, rmm::device_uvector<edge_t> &&sigmas, bool with_endpoints, bool do_expensive_check)#
template<typename vertex_t, typename edge_t, typename weight_t, bool multi_gpu>
void accumulate_edge_results(raft::handle_t const &handle, graph_view_t<vertex_t, edge_t, false, multi_gpu> const &graph_view, std::optional<edge_property_view_t<edge_t, weight_t const*>> edge_weight_view, edge_property_view_t<edge_t, weight_t *> centralities_view, rmm::device_uvector<vertex_t> &&distances, rmm::device_uvector<edge_t> &&sigmas, bool do_expensive_check)#
template<typename vertex_t, typename edge_t, typename weight_t, bool multi_gpu, typename VertexIterator>
rmm::device_uvector<weight_t> betweenness_centrality(raft::handle_t const &handle, graph_view_t<vertex_t, edge_t, false, multi_gpu> const &graph_view, std::optional<edge_property_view_t<edge_t, weight_t const*>> edge_weight_view, VertexIterator vertices_begin, VertexIterator vertices_end, bool const normalized, bool const include_endpoints, bool const do_expensive_check)#
template<typename vertex_t, typename edge_t, typename weight_t, bool multi_gpu, typename VertexIterator>
edge_property_t<graph_view_t<vertex_t, edge_t, false, multi_gpu>, weight_t> edge_betweenness_centrality(const raft::handle_t &handle, graph_view_t<vertex_t, edge_t, false, multi_gpu> const &graph_view, std::optional<edge_property_view_t<edge_t, weight_t const*>> edge_weight_view, VertexIterator vertices_begin, VertexIterator vertices_end, bool const normalized, bool const do_expensive_check)#
template<typename vertex_t, typename edge_t, typename weight_t, bool multi_gpu>
rmm::device_uvector<weight_t> eigenvector_centrality(raft::handle_t const &handle, graph_view_t<vertex_t, edge_t, true, multi_gpu> const &pull_graph_view, std::optional<edge_property_view_t<edge_t, weight_t const*>> edge_weight_view, std::optional<raft::device_span<weight_t const>> initial_centralities, weight_t epsilon, size_t max_iterations, bool do_expensive_check)#
template<typename GraphViewType, typename weight_t, typename result_t>
void katz_centrality(raft::handle_t const &handle, GraphViewType const &pull_graph_view, std::optional<edge_property_view_t<typename GraphViewType::edge_type, weight_t const*>> edge_weight_view, result_t const *betas, result_t *katz_centralities, result_t alpha, result_t beta, result_t epsilon, size_t max_iterations, bool has_initial_guess, bool normalize, bool do_expensive_check)#
template<typename vertex_t, typename edge_t, typename weight_t, bool multi_gpu>
std::tuple<rmm::device_uvector<vertex_t>, weight_t> approximate_weighted_matching(raft::handle_t const &handle, cugraph::graph_view_t<vertex_t, edge_t, false, multi_gpu> const &graph_view, edge_property_view_t<edge_t, weight_t const*> edge_weight_view)#
template<typename vertex_t, typename edge_t, typename weight_t, bool multi_gpu>
weight_t compute_modularity(raft::handle_t const &handle, graph_view_t<vertex_t, edge_t, false, multi_gpu> const &graph_view, std::optional<edge_property_view_t<edge_t, weight_t const*>> edge_weight_view, edge_src_property_t<graph_view_t<vertex_t, edge_t, false, multi_gpu>, vertex_t> const &src_clusters_cache, edge_dst_property_t<graph_view_t<vertex_t, edge_t, false, multi_gpu>, vertex_t> const &dst_clusters_cache, rmm::device_uvector<vertex_t> const &next_clusters, rmm::device_uvector<weight_t> const &cluster_weights, weight_t total_edge_weight, weight_t resolution)#
template<typename vertex_t, typename edge_t, typename weight_t, bool multi_gpu>
std::tuple<cugraph::graph_t<vertex_t, edge_t, false, multi_gpu>, std::optional<edge_property_t<graph_view_t<vertex_t, edge_t, false, multi_gpu>, weight_t>>> graph_contraction(raft::handle_t const &handle, cugraph::graph_view_t<vertex_t, edge_t, false, multi_gpu> const &graph_view, std::optional<edge_property_view_t<edge_t, weight_t const*>> edge_weights_view, raft::device_span<vertex_t> labels)#
template<typename vertex_t, typename edge_t, typename weight_t, bool multi_gpu>
rmm::device_uvector<vertex_t> update_clustering_by_delta_modularity(raft::handle_t const &handle, graph_view_t<vertex_t, edge_t, false, multi_gpu> const &graph_view, std::optional<edge_property_view_t<edge_t, weight_t const*>> edge_weight_view, weight_t total_edge_weight, weight_t resolution, rmm::device_uvector<weight_t> const &vertex_weights_v, rmm::device_uvector<vertex_t> &&cluster_keys_v, rmm::device_uvector<weight_t> &&cluster_weights_v, rmm::device_uvector<vertex_t> &&next_clusters_v, edge_src_property_t<graph_view_t<vertex_t, edge_t, false, multi_gpu>, weight_t> const &src_vertex_weights_cache, edge_src_property_t<graph_view_t<vertex_t, edge_t, false, multi_gpu>, vertex_t> const &src_clusters_cache, edge_dst_property_t<graph_view_t<vertex_t, edge_t, false, multi_gpu>, vertex_t> const &dst_clusters_cache, bool up_down)#
template<typename vertex_t, typename edge_t, typename weight_t, bool multi_gpu>
std::tuple<rmm::device_uvector<vertex_t>, rmm::device_uvector<weight_t>> compute_cluster_keys_and_values(raft::handle_t const &handle, graph_view_t<vertex_t, edge_t, false, multi_gpu> const &graph_view, std::optional<edge_property_view_t<edge_t, weight_t const*>> edge_weight_view, rmm::device_uvector<vertex_t> const &next_clusters_v, edge_src_property_t<graph_view_t<vertex_t, edge_t, false, multi_gpu>, vertex_t> const &src_clusters_cache)#
template<typename vertex_t, typename edge_t, typename weight_t, bool multi_gpu>
std::tuple<graph_t<vertex_t, edge_t, false, multi_gpu>, std::optional<edge_property_t<graph_view_t<vertex_t, edge_t, false, multi_gpu>, weight_t>>> graph_contraction(raft::handle_t const &handle, graph_view_t<vertex_t, edge_t, false, multi_gpu> const &graph_view, std::optional<edge_property_view_t<edge_t, weight_t const*>> edge_weights, raft::device_span<vertex_t> labels)#
template float compute_modularity (raft::handle_t const &handle, cugraph::graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, edge_src_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, int32_t > const &src_clusters_cache, edge_dst_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, int32_t > const &dst_clusters_cache, rmm::device_uvector< int32_t > const &next_clusters, rmm::device_uvector< float > const &cluster_weights, float total_edge_weight, float resolution)
template double compute_modularity (raft::handle_t const &handle, cugraph::graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, edge_src_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, int32_t > const &src_clusters_cache, edge_dst_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, int32_t > const &dst_clusters_cache, rmm::device_uvector< int32_t > const &next_clusters, rmm::device_uvector< double > const &cluster_weights, double total_edge_weight, double resolution)
template std::tuple< cugraph::graph_t< int32_t, int32_t, false, true >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, true >, float > > > graph_contraction (raft::handle_t const &handle, cugraph::graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weights, raft::device_span< int32_t > labels)
template std::tuple< cugraph::graph_t< int32_t, int32_t, false, true >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, true >, double > > > graph_contraction (raft::handle_t const &handle, cugraph::graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weights, raft::device_span< int32_t > labels)
template rmm::device_uvector< int32_t > update_clustering_by_delta_modularity (raft::handle_t const &handle, cugraph::graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, float total_edge_weight, float resolution, rmm::device_uvector< float > const &vertex_weights_v, rmm::device_uvector< int32_t > &&cluster_keys_v, rmm::device_uvector< float > &&cluster_weights_v, rmm::device_uvector< int32_t > &&next_clusters_v, edge_src_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, float > const &src_vertex_weights_cache, edge_src_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, int32_t > const &src_clusters_cache, edge_dst_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, int32_t > const &dst_clusters_cache, bool up_down)
template rmm::device_uvector< int32_t > update_clustering_by_delta_modularity (raft::handle_t const &handle, cugraph::graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, double total_edge_weight, double resolution, rmm::device_uvector< double > const &vertex_weights_v, rmm::device_uvector< int32_t > &&cluster_keys_v, rmm::device_uvector< double > &&cluster_weights_v, rmm::device_uvector< int32_t > &&next_clusters_v, edge_src_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, double > const &src_vertex_weights_cache, edge_src_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, int32_t > const &src_clusters_cache, edge_dst_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, int32_t > const &dst_clusters_cache, bool up_down)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< float > > compute_cluster_keys_and_values (raft::handle_t const &handle, cugraph::graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, rmm::device_uvector< int32_t > const &next_clusters_v, edge_src_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, int32_t > const &src_clusters_cache)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< double > > compute_cluster_keys_and_values (raft::handle_t const &handle, cugraph::graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, rmm::device_uvector< int32_t > const &next_clusters_v, edge_src_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, int32_t > const &src_clusters_cache)
template float compute_modularity (raft::handle_t const &handle, cugraph::graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, edge_src_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int64_t > const &src_clusters_cache, edge_dst_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int64_t > const &dst_clusters_cache, rmm::device_uvector< int64_t > const &next_clusters, rmm::device_uvector< float > const &cluster_weights, float total_edge_weight, float resolution)
template double compute_modularity (raft::handle_t const &handle, cugraph::graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, edge_src_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int64_t > const &src_clusters_cache, edge_dst_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int64_t > const &dst_clusters_cache, rmm::device_uvector< int64_t > const &next_clusters, rmm::device_uvector< double > const &cluster_weights, double total_edge_weight, double resolution)
template std::tuple< cugraph::graph_t< int64_t, int64_t, false, true >, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, false, true >, float > > > graph_contraction (raft::handle_t const &handle, cugraph::graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weights, raft::device_span< int64_t > labels)
template std::tuple< cugraph::graph_t< int64_t, int64_t, false, true >, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, false, true >, double > > > graph_contraction (raft::handle_t const &handle, cugraph::graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weights, raft::device_span< int64_t > labels)
template rmm::device_uvector< int64_t > update_clustering_by_delta_modularity (raft::handle_t const &handle, cugraph::graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, float total_edge_weight, float resolution, rmm::device_uvector< float > const &vertex_weights_v, rmm::device_uvector< int64_t > &&cluster_keys_v, rmm::device_uvector< float > &&cluster_weights_v, rmm::device_uvector< int64_t > &&next_clusters_v, edge_src_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, float > const &src_vertex_weights_cache, edge_src_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int64_t > const &src_clusters_cache, edge_dst_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int64_t > const &dst_clusters_cache, bool up_down)
template rmm::device_uvector< int64_t > update_clustering_by_delta_modularity (raft::handle_t const &handle, cugraph::graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, double total_edge_weight, double resolution, rmm::device_uvector< double > const &vertex_weights_v, rmm::device_uvector< int64_t > &&cluster_keys_v, rmm::device_uvector< double > &&cluster_weights_v, rmm::device_uvector< int64_t > &&next_clusters_v, edge_src_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, double > const &src_vertex_weights_cache, edge_src_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int64_t > const &src_clusters_cache, edge_dst_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int64_t > const &dst_clusters_cache, bool up_down)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< float > > compute_cluster_keys_and_values (raft::handle_t const &handle, cugraph::graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, rmm::device_uvector< int64_t > const &next_clusters_v, edge_src_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int64_t > const &src_clusters_cache)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< double > > compute_cluster_keys_and_values (raft::handle_t const &handle, cugraph::graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, rmm::device_uvector< int64_t > const &next_clusters_v, edge_src_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int64_t > const &src_clusters_cache)
template float compute_modularity (raft::handle_t const &handle, cugraph::graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, edge_src_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, int32_t > const &src_clusters_cache, edge_dst_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, int32_t > const &dst_clusters_cache, rmm::device_uvector< int32_t > const &next_clusters, rmm::device_uvector< float > const &cluster_weights, float total_edge_weight, float resolution)
template double compute_modularity (raft::handle_t const &handle, cugraph::graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, edge_src_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, int32_t > const &src_clusters_cache, edge_dst_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, int32_t > const &dst_clusters_cache, rmm::device_uvector< int32_t > const &next_clusters, rmm::device_uvector< double > const &cluster_weights, double total_edge_weight, double resolution)
template std::tuple< cugraph::graph_t< int32_t, int32_t, false, false >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, false >, float > > > graph_contraction (raft::handle_t const &handle, cugraph::graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weights, raft::device_span< int32_t > labels)
template std::tuple< cugraph::graph_t< int32_t, int32_t, false, false >, std::optional< edge_property_t< graph_view_t< int32_t, int32_t, false, false >, double > > > graph_contraction (raft::handle_t const &handle, cugraph::graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weights, raft::device_span< int32_t > labels)
template rmm::device_uvector< int32_t > update_clustering_by_delta_modularity (raft::handle_t const &handle, cugraph::graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, float total_edge_weight, float resolution, rmm::device_uvector< float > const &vertex_weights_v, rmm::device_uvector< int32_t > &&cluster_keys_v, rmm::device_uvector< float > &&cluster_weights_v, rmm::device_uvector< int32_t > &&next_clusters_v, edge_src_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, float > const &src_vertex_weights_cache, edge_src_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, int32_t > const &src_clusters_cache, edge_dst_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, int32_t > const &dst_clusters_cache, bool up_down)
template rmm::device_uvector< int32_t > update_clustering_by_delta_modularity (raft::handle_t const &handle, cugraph::graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, double total_edge_weight, double resolution, rmm::device_uvector< double > const &vertex_weights_v, rmm::device_uvector< int32_t > &&cluster_keys_v, rmm::device_uvector< double > &&cluster_weights_v, rmm::device_uvector< int32_t > &&next_clusters_v, edge_src_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, double > const &src_vertex_weights_cache, edge_src_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, int32_t > const &src_clusters_cache, edge_dst_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, int32_t > const &dst_clusters_cache, bool up_down)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< float > > compute_cluster_keys_and_values (raft::handle_t const &handle, cugraph::graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, rmm::device_uvector< int32_t > const &next_clusters_v, edge_src_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, int32_t > const &src_clusters_cache)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< double > > compute_cluster_keys_and_values (raft::handle_t const &handle, cugraph::graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, rmm::device_uvector< int32_t > const &next_clusters_v, edge_src_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, int32_t > const &src_clusters_cache)
template float compute_modularity (raft::handle_t const &handle, cugraph::graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, edge_src_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int64_t > const &src_clusters_cache, edge_dst_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int64_t > const &dst_clusters_cache, rmm::device_uvector< int64_t > const &next_clusters, rmm::device_uvector< float > const &cluster_weights, float total_edge_weight, float resolution)
template double compute_modularity (raft::handle_t const &handle, cugraph::graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, edge_src_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int64_t > const &src_clusters_cache, edge_dst_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int64_t > const &dst_clusters_cache, rmm::device_uvector< int64_t > const &next_clusters, rmm::device_uvector< double > const &cluster_weights, double total_edge_weight, double resolution)
template std::tuple< cugraph::graph_t< int64_t, int64_t, false, false >, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, false, false >, float > > > graph_contraction (raft::handle_t const &handle, cugraph::graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weights, raft::device_span< int64_t > labels)
template std::tuple< cugraph::graph_t< int64_t, int64_t, false, false >, std::optional< edge_property_t< graph_view_t< int64_t, int64_t, false, false >, double > > > graph_contraction (raft::handle_t const &handle, cugraph::graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weights, raft::device_span< int64_t > labels)
template rmm::device_uvector< int64_t > update_clustering_by_delta_modularity (raft::handle_t const &handle, cugraph::graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, float total_edge_weight, float resolution, rmm::device_uvector< float > const &vertex_weights_v, rmm::device_uvector< int64_t > &&cluster_keys_v, rmm::device_uvector< float > &&cluster_weights_v, rmm::device_uvector< int64_t > &&next_clusters_v, edge_src_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, float > const &src_vertex_weights_cache, edge_src_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int64_t > const &src_clusters_cache, edge_dst_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int64_t > const &dst_clusters_cache, bool up_down)
template rmm::device_uvector< int64_t > update_clustering_by_delta_modularity (raft::handle_t const &handle, cugraph::graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, double total_edge_weight, double resolution, rmm::device_uvector< double > const &vertex_weights_v, rmm::device_uvector< int64_t > &&cluster_keys_v, rmm::device_uvector< double > &&cluster_weights_v, rmm::device_uvector< int64_t > &&next_clusters_v, edge_src_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, double > const &src_vertex_weights_cache, edge_src_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int64_t > const &src_clusters_cache, edge_dst_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int64_t > const &dst_clusters_cache, bool up_down)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< float > > compute_cluster_keys_and_values (raft::handle_t const &handle, cugraph::graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, rmm::device_uvector< int64_t > const &next_clusters_v, edge_src_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int64_t > const &src_clusters_cache)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< double > > compute_cluster_keys_and_values (raft::handle_t const &handle, cugraph::graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, rmm::device_uvector< int64_t > const &next_clusters_v, edge_src_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int64_t > const &src_clusters_cache)
template<typename vertex_t, typename edge_t, bool multi_gpu>
rmm::device_uvector<vertex_t> maximal_independent_moves(raft::handle_t const &handle, cugraph::graph_view_t<vertex_t, edge_t, false, multi_gpu> const &graph_view, raft::random::RngState &rng_state)#
template rmm::device_uvector< int32_t > maximal_independent_moves (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &decision_graph_view, raft::random::RngState &rng_state)
template rmm::device_uvector< int64_t > maximal_independent_moves (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &decision_graph_view, raft::random::RngState &rng_state)
template rmm::device_uvector< int32_t > maximal_independent_moves (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &decision_graph_view, raft::random::RngState &rng_state)
template rmm::device_uvector< int64_t > maximal_independent_moves (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &decision_graph_view, raft::random::RngState &rng_state)
template<typename graph_view_t, typename weight_t>
std::tuple<rmm::device_uvector<typename graph_view_t::vertex_type>, std::pair<rmm::device_uvector<typename graph_view_t::vertex_type>, rmm::device_uvector<typename graph_view_t::vertex_type>>> refine_clustering(raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t const &graph_view, std::optional<edge_property_view_t<typename graph_view_t::edge_type, weight_t const*>> edge_weight_view, weight_t total_edge_weight, weight_t resolution, weight_t theta, rmm::device_uvector<weight_t> const &vertex_weights_v, rmm::device_uvector<typename graph_view_t::vertex_type> &&cluster_keys_v, rmm::device_uvector<weight_t> &&cluster_weights_v, rmm::device_uvector<typename graph_view_t::vertex_type> &&next_clusters_v, edge_src_property_t<graph_view_t, weight_t> const &src_vertex_weights_cache, edge_src_property_t<graph_view_t, typename graph_view_t::vertex_type> const &src_clusters_cache, edge_dst_property_t<graph_view_t, typename graph_view_t::vertex_type> const &dst_clusters_cache)#
template<typename GraphViewType, typename weight_t>
std::tuple<rmm::device_uvector<typename GraphViewType::vertex_type>, std::pair<rmm::device_uvector<typename GraphViewType::vertex_type>, rmm::device_uvector<typename GraphViewType::vertex_type>>> refine_clustering(raft::handle_t const &handle, raft::random::RngState &rng_state, GraphViewType const &graph_view, std::optional<edge_property_view_t<typename GraphViewType::edge_type, weight_t const*>> edge_weight_view, weight_t total_edge_weight, weight_t resolution, weight_t theta, rmm::device_uvector<weight_t> const &weighted_degree_of_vertices, rmm::device_uvector<typename GraphViewType::vertex_type> &&louvain_cluster_keys, rmm::device_uvector<weight_t> &&louvain_cluster_weights, rmm::device_uvector<typename GraphViewType::vertex_type> &&louvain_assignment_of_vertices, edge_src_property_t<GraphViewType, weight_t> const &src_vertex_weights_cache, edge_src_property_t<GraphViewType, typename GraphViewType::vertex_type> const &src_louvain_assignment_cache, edge_dst_property_t<GraphViewType, typename GraphViewType::vertex_type> const &dst_louvain_assignment_cache)#
template std::tuple< rmm::device_uvector< int32_t >, std::pair< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t > > > refine_clustering (raft::handle_t const &handle, raft::random::RngState &rng_state, cugraph::graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, float total_edge_weight, float resolution, float theta, rmm::device_uvector< float > const &vertex_weights_v, rmm::device_uvector< int32_t > &&cluster_keys_v, rmm::device_uvector< float > &&cluster_weights_v, rmm::device_uvector< int32_t > &&next_clusters_v, edge_src_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, float > const &src_vertex_weights_cache, edge_src_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, int32_t > const &src_clusters_cache, edge_dst_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, int32_t > const &dst_clusters_cache)
template std::tuple< rmm::device_uvector< int32_t >, std::pair< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t > > > refine_clustering (raft::handle_t const &handle, raft::random::RngState &rng_state, cugraph::graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, double total_edge_weight, double resolution, double theta, rmm::device_uvector< double > const &vertex_weights_v, rmm::device_uvector< int32_t > &&cluster_keys_v, rmm::device_uvector< double > &&cluster_weights_v, rmm::device_uvector< int32_t > &&next_clusters_v, edge_src_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, double > const &src_vertex_weights_cache, edge_src_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, int32_t > const &src_clusters_cache, edge_dst_property_t< cugraph::graph_view_t< int32_t, int32_t, false, true >, int32_t > const &dst_clusters_cache)
template std::tuple< rmm::device_uvector< int64_t >, std::pair< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t > > > refine_clustering (raft::handle_t const &handle, raft::random::RngState &rng_state, cugraph::graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, float total_edge_weight, float resolution, float theta, rmm::device_uvector< float > const &vertex_weights_v, rmm::device_uvector< int64_t > &&cluster_keys_v, rmm::device_uvector< float > &&cluster_weights_v, rmm::device_uvector< int64_t > &&next_clusters_v, edge_src_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, float > const &src_vertex_weights_cache, edge_src_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int64_t > const &src_clusters_cache, edge_dst_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int64_t > const &dst_clusters_cache)
template std::tuple< rmm::device_uvector< int64_t >, std::pair< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t > > > refine_clustering (raft::handle_t const &handle, raft::random::RngState &rng_state, cugraph::graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, double total_edge_weight, double resolution, double theta, rmm::device_uvector< double > const &vertex_weights_v, rmm::device_uvector< int64_t > &&cluster_keys_v, rmm::device_uvector< double > &&cluster_weights_v, rmm::device_uvector< int64_t > &&next_clusters_v, edge_src_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, double > const &src_vertex_weights_cache, edge_src_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int64_t > const &src_clusters_cache, edge_dst_property_t< cugraph::graph_view_t< int64_t, int64_t, false, true >, int64_t > const &dst_clusters_cache)
template std::tuple< rmm::device_uvector< int32_t >, std::pair< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t > > > refine_clustering (raft::handle_t const &handle, raft::random::RngState &rng_state, cugraph::graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, float total_edge_weight, float resolution, float theta, rmm::device_uvector< float > const &vertex_weights_v, rmm::device_uvector< int32_t > &&cluster_keys_v, rmm::device_uvector< float > &&cluster_weights_v, rmm::device_uvector< int32_t > &&next_clusters_v, edge_src_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, float > const &src_vertex_weights_cache, edge_src_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, int32_t > const &src_clusters_cache, edge_dst_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, int32_t > const &dst_clusters_cache)
template std::tuple< rmm::device_uvector< int32_t >, std::pair< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t > > > refine_clustering (raft::handle_t const &handle, raft::random::RngState &rng_state, cugraph::graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, double total_edge_weight, double resolution, double theta, rmm::device_uvector< double > const &vertex_weights_v, rmm::device_uvector< int32_t > &&cluster_keys_v, rmm::device_uvector< double > &&cluster_weights_v, rmm::device_uvector< int32_t > &&next_clusters_v, edge_src_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, double > const &src_vertex_weights_cache, edge_src_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, int32_t > const &src_clusters_cache, edge_dst_property_t< cugraph::graph_view_t< int32_t, int32_t, false, false >, int32_t > const &dst_clusters_cache)
template std::tuple< rmm::device_uvector< int64_t >, std::pair< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t > > > refine_clustering (raft::handle_t const &handle, raft::random::RngState &rng_state, cugraph::graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, float total_edge_weight, float resolution, float theta, rmm::device_uvector< float > const &vertex_weights_v, rmm::device_uvector< int64_t > &&cluster_keys_v, rmm::device_uvector< float > &&cluster_weights_v, rmm::device_uvector< int64_t > &&next_clusters_v, edge_src_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, float > const &src_vertex_weights_cache, edge_src_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int64_t > const &src_clusters_cache, edge_dst_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int64_t > const &dst_clusters_cache)
template std::tuple< rmm::device_uvector< int64_t >, std::pair< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t > > > refine_clustering (raft::handle_t const &handle, raft::random::RngState &rng_state, cugraph::graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, double total_edge_weight, double resolution, double theta, rmm::device_uvector< double > const &vertex_weights_v, rmm::device_uvector< int64_t > &&cluster_keys_v, rmm::device_uvector< double > &&cluster_weights_v, rmm::device_uvector< int64_t > &&next_clusters_v, edge_src_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, double > const &src_vertex_weights_cache, edge_src_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int64_t > const &src_clusters_cache, edge_dst_property_t< cugraph::graph_view_t< int64_t, int64_t, false, false >, int64_t > const &dst_clusters_cache)
template<typename vertex_t, typename edge_t, typename weight_t, bool multi_gpu>
std::tuple<rmm::device_uvector<vertex_t>, size_t, weight_t> ecg(raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t<vertex_t, edge_t, false, multi_gpu> const &graph_view, std::optional<edge_property_view_t<edge_t, weight_t const*>> edge_weight_view, weight_t min_weight, size_t ensemble_size, size_t max_level, weight_t threshold, weight_t resolution)#
template<typename vertex_t, typename edge_t, bool store_transposed, bool multi_gpu>
edge_property_t<graph_view_t<vertex_t, edge_t, false, multi_gpu>, edge_t> edge_triangle_count_impl(raft::handle_t const &handle, graph_view_t<vertex_t, edge_t, store_transposed, multi_gpu> const &graph_view, bool do_expensive_check)#
template<typename vertex_t, typename edge_t, bool multi_gpu>
void check_clustering(graph_view_t<vertex_t, edge_t, false, multi_gpu> const &graph_view, vertex_t *clustering)#
template<typename vertex_t, bool multi_gpu>
vertex_t remove_duplicates(raft::handle_t const &handle, rmm::device_uvector<vertex_t> &input_array)#
template<typename vertex_t, typename edge_t, typename weight_t, bool multi_gpu, bool store_transposed = false>
std::pair<std::unique_ptr<Dendrogram<vertex_t>>, weight_t> leiden(raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t<vertex_t, edge_t, false, multi_gpu> const &graph_view, std::optional<edge_property_view_t<edge_t, weight_t const*>> edge_weight_view, size_t max_level, weight_t resolution, weight_t theta = 1.0)#
template<typename vertex_t, bool multi_gpu>
void relabel_cluster_ids(raft::handle_t const &handle, rmm::device_uvector<vertex_t> &unique_cluster_ids, vertex_t *clustering, size_t num_nodes)#
template<typename vertex_t, typename edge_t, bool multi_gpu>
void flatten_leiden_dendrogram(raft::handle_t const &handle, graph_view_t<vertex_t, edge_t, false, multi_gpu> const &graph_view, Dendrogram<vertex_t> const &dendrogram, vertex_t *clustering)#
template<typename vertex_t, typename edge_t, typename weight_t, bool multi_gpu>
std::pair<std::unique_ptr<Dendrogram<vertex_t>>, weight_t> louvain(raft::handle_t const &handle, std::optional<std::reference_wrapper<raft::random::RngState>> rng_state, graph_view_t<vertex_t, edge_t, false, multi_gpu> const &graph_view, std::optional<edge_property_view_t<edge_t, weight_t const*>> edge_weight_view, size_t max_level, weight_t threshold, weight_t resolution)#
template<typename vertex_t, typename edge_t, bool multi_gpu>
void flatten_dendrogram(raft::handle_t const &handle, graph_view_t<vertex_t, edge_t, false, multi_gpu> const &graph_view, Dendrogram<vertex_t> const &dendrogram, vertex_t *clustering)#
template<typename VT, typename ET, typename WT, int TPB_X = 32>
std::enable_if_t<std::is_signed<VT>::value> connected_components_impl(legacy::GraphCSRView<VT, ET, WT> const &graph, cugraph_cc_t connectivity_type, VT *labels, cudaStream_t stream)#

计算连接组件。弱版本已被基于原语的实现所取代。

强版本(适用于有向图或无向图)基于:[2] Gilbert, J. 等人,2011 年。《线性代数语言中的图算法》(Graph Algorithms in the Language of Linear Algebra)。

C = I | A | A^2 |…| A^k,其中矩阵乘法是通过半环实现的:(combine, reduce) == (&, |) (位操作)。然后:X = C & 转置(C);最后应用 get_labels(X)。

模板参数
  • IndexT – 非浮点元素的数字类型

  • TPB_X – 配置内核时每个块使用的线程数

参数
  • graph – 输入图;弱连接组件(weakly CC)假定为无向图 [in]

  • connectivity_type – 忽略 [in]

  • stream – cuda 流 [in]

template<typename vertex_t, typename edge_t, bool multi_gpu>
rmm::device_uvector<vertex_t> maximal_independent_set(raft::handle_t const &handle, cugraph::graph_view_t<vertex_t, edge_t, false, multi_gpu> const &graph_view, raft::random::RngState &rng_state)#
template<typename vertex_t, typename edge_t, bool multi_gpu>
rmm::device_uvector<vertex_t> vertex_coloring(raft::handle_t const &handle, cugraph::graph_view_t<vertex_t, edge_t, false, multi_gpu> const &graph_view, raft::random::RngState &rng_state)#
template<typename VT, typename ET, typename WT>
VT sort(legacy::GraphCOOView<VT, ET, WT> &graph, rmm::cuda_stream_view stream_view)#

对输入图进行排序并查找总顶点数。

按字典顺序对 COO 视图进行排序并查找总顶点数

抛出

cugraph::logic_error – 发生错误时。

模板参数
  • VT – 顶点标识符的类型。支持的值:int(有符号,32 位)

  • ET – 边标识符的类型。支持的值:int(有符号,32 位)

  • WT – 边权重的类型。支持的值:float 或 double。

参数
  • graph – **[in]** 输入图对象

  • stream_view – **[in]** 用于内核调用的 cuda 流

  • result – **[out]** 总顶点数

template<typename VT, typename ET>
void fill_offset(VT *source, ET *offsets, VT number_of_vertices, ET number_of_edges, rmm::cuda_stream_view stream_view)#
template<typename VT, typename ET>
rmm::device_buffer create_offset(VT *source, VT number_of_vertices, ET number_of_edges, rmm::cuda_stream_view stream_view, rmm::device_async_resource_ref mr)#
template rmm::device_uvector< int32_t > device_allgatherv (raft::handle_t const &handle, raft::comms::comms_t const &comm, raft::device_span< int32_t const > d_input)
template rmm::device_uvector< float > device_allgatherv (raft::handle_t const &handle, raft::comms::comms_t const &comm, raft::device_span< float const > d_input)
template rmm::device_uvector< int64_t > device_allgatherv (raft::handle_t const &handle, raft::comms::comms_t const &comm, raft::device_span< int64_t const > d_input)
template rmm::device_uvector< double > device_allgatherv (raft::handle_t const &handle, raft::comms::comms_t const &comm, raft::device_span< double const > d_input)
template rmm::device_uvector< float > collect_local_vertex_values_from_ext_vertex_value_pairs< int32_t, float, true > (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&d_vertices, rmm::device_uvector< float > &&d_values, rmm::device_uvector< int32_t > const &number_map, int32_t local_vertex_first, int32_t local_vertex_last, float default_value, bool do_expensive_check)
template rmm::device_uvector< int32_t > collect_local_vertex_values_from_ext_vertex_value_pairs< int32_t, int32_t, true > (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&d_vertices, rmm::device_uvector< int32_t > &&d_values, rmm::device_uvector< int32_t > const &number_map, int32_t local_vertex_first, int32_t local_vertex_last, int32_t default_value, bool do_expensive_check)
template rmm::device_uvector< double > collect_local_vertex_values_from_ext_vertex_value_pairs< int32_t, double, true > (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&d_vertices, rmm::device_uvector< double > &&d_values, rmm::device_uvector< int32_t > const &number_map, int32_t local_vertex_first, int32_t local_vertex_last, double default_value, bool do_expensive_check)
template rmm::device_uvector< float > collect_local_vertex_values_from_ext_vertex_value_pairs< int64_t, float, true > (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&d_vertices, rmm::device_uvector< float > &&d_values, rmm::device_uvector< int64_t > const &number_map, int64_t local_vertex_first, int64_t local_vertex_last, float default_value, bool do_expensive_check)
template rmm::device_uvector< double > collect_local_vertex_values_from_ext_vertex_value_pairs< int64_t, double, true > (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&d_vertices, rmm::device_uvector< double > &&d_values, rmm::device_uvector< int64_t > const &number_map, int64_t local_vertex_first, int64_t local_vertex_last, double default_value, bool do_expensive_check)
template rmm::device_uvector< int64_t > collect_local_vertex_values_from_ext_vertex_value_pairs< int64_t, int64_t, true > (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&d_vertices, rmm::device_uvector< int64_t > &&d_values, rmm::device_uvector< int64_t > const &number_map, int64_t local_vertex_first, int64_t local_vertex_last, int64_t default_value, bool do_expensive_check)
template rmm::device_uvector< float > collect_local_vertex_values_from_ext_vertex_value_pairs< int32_t, float, false > (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&d_vertices, rmm::device_uvector< float > &&d_values, rmm::device_uvector< int32_t > const &number_map, int32_t local_vertex_first, int32_t local_vertex_last, float default_value, bool do_expensive_check)
template rmm::device_uvector< int32_t > collect_local_vertex_values_from_ext_vertex_value_pairs< int32_t, int32_t, false > (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&d_vertices, rmm::device_uvector< int32_t > &&d_values, rmm::device_uvector< int32_t > const &number_map, int32_t local_vertex_first, int32_t local_vertex_last, int32_t default_value, bool do_expensive_check)
template rmm::device_uvector< double > collect_local_vertex_values_from_ext_vertex_value_pairs< int32_t, double, false > (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&d_vertices, rmm::device_uvector< double > &&d_values, rmm::device_uvector< int32_t > const &number_map, int32_t local_vertex_first, int32_t local_vertex_last, double default_value, bool do_expensive_check)
template rmm::device_uvector< float > collect_local_vertex_values_from_ext_vertex_value_pairs< int64_t, float, false > (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&d_vertices, rmm::device_uvector< float > &&d_values, rmm::device_uvector< int64_t > const &number_map, int64_t local_vertex_first, int64_t local_vertex_last, float default_value, bool do_expensive_check)
template rmm::device_uvector< double > collect_local_vertex_values_from_ext_vertex_value_pairs< int64_t, double, false > (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&d_vertices, rmm::device_uvector< double > &&d_values, rmm::device_uvector< int64_t > const &number_map, int64_t local_vertex_first, int64_t local_vertex_last, double default_value, bool do_expensive_check)
template rmm::device_uvector< int64_t > collect_local_vertex_values_from_ext_vertex_value_pairs< int64_t, int64_t, false > (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&d_vertices, rmm::device_uvector< int64_t > &&d_values, rmm::device_uvector< int64_t > const &number_map, int64_t local_vertex_first, int64_t local_vertex_last, int64_t default_value, bool do_expensive_check)
template rmm::device_uvector< size_t > groupby_and_count_edgelist_by_local_partition_id (raft::handle_t const &handle, rmm::device_uvector< int32_t > &d_edgelist_majors, rmm::device_uvector< int32_t > &d_edgelist_minors, std::optional< rmm::device_uvector< float > > &d_edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &d_edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &d_edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &d_edgelist_edge_start_times, std::optional< rmm::device_uvector< int32_t > > &d_edgelist_edge_end_times, bool groupby_and_counts_local_partition)
template rmm::device_uvector< size_t > groupby_and_count_edgelist_by_local_partition_id (raft::handle_t const &handle, rmm::device_uvector< int32_t > &d_edgelist_majors, rmm::device_uvector< int32_t > &d_edgelist_minors, std::optional< rmm::device_uvector< double > > &d_edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &d_edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &d_edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &d_edgelist_edge_start_times, std::optional< rmm::device_uvector< int32_t > > &d_edgelist_edge_end_times, bool groupby_and_counts_local_partition)
template rmm::device_uvector< size_t > groupby_and_count_edgelist_by_local_partition_id (raft::handle_t const &handle, rmm::device_uvector< int32_t > &d_edgelist_majors, rmm::device_uvector< int32_t > &d_edgelist_minors, std::optional< rmm::device_uvector< float > > &d_edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &d_edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &d_edgelist_edge_types, std::optional< rmm::device_uvector< int64_t > > &d_edgelist_edge_start_times, std::optional< rmm::device_uvector< int64_t > > &d_edgelist_edge_end_times, bool groupby_and_counts_local_partition)
template rmm::device_uvector< size_t > groupby_and_count_edgelist_by_local_partition_id (raft::handle_t const &handle, rmm::device_uvector< int32_t > &d_edgelist_majors, rmm::device_uvector< int32_t > &d_edgelist_minors, std::optional< rmm::device_uvector< double > > &d_edgelist_weights, std::optional< rmm::device_uvector< int32_t > > &d_edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &d_edgelist_edge_types, std::optional< rmm::device_uvector< int64_t > > &d_edgelist_edge_start_times, std::optional< rmm::device_uvector< int64_t > > &d_edgelist_edge_end_times, bool groupby_and_counts_local_partition)
template rmm::device_uvector< size_t > groupby_and_count_edgelist_by_local_partition_id (raft::handle_t const &handle, rmm::device_uvector< int64_t > &d_edgelist_majors, rmm::device_uvector< int64_t > &d_edgelist_minors, std::optional< rmm::device_uvector< float > > &d_edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &d_edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &d_edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &d_edgelist_edge_start_times, std::optional< rmm::device_uvector< int32_t > > &d_edgelist_edge_end_times, bool groupby_and_counts_local_partition)
template rmm::device_uvector< size_t > groupby_and_count_edgelist_by_local_partition_id (raft::handle_t const &handle, rmm::device_uvector< int64_t > &d_edgelist_majors, rmm::device_uvector< int64_t > &d_edgelist_minors, std::optional< rmm::device_uvector< double > > &d_edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &d_edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &d_edgelist_edge_types, std::optional< rmm::device_uvector< int32_t > > &d_edgelist_edge_start_times, std::optional< rmm::device_uvector< int32_t > > &d_edgelist_edge_end_times, bool groupby_and_counts_local_partition)
template rmm::device_uvector< size_t > groupby_and_count_edgelist_by_local_partition_id (raft::handle_t const &handle, rmm::device_uvector< int64_t > &d_edgelist_majors, rmm::device_uvector< int64_t > &d_edgelist_minors, std::optional< rmm::device_uvector< float > > &d_edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &d_edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &d_edgelist_edge_types, std::optional< rmm::device_uvector< int64_t > > &d_edgelist_edge_start_times, std::optional< rmm::device_uvector< int64_t > > &d_edgelist_edge_end_times, bool groupby_and_counts_local_partition)
template rmm::device_uvector< size_t > groupby_and_count_edgelist_by_local_partition_id (raft::handle_t const &handle, rmm::device_uvector< int64_t > &d_edgelist_majors, rmm::device_uvector< int64_t > &d_edgelist_minors, std::optional< rmm::device_uvector< double > > &d_edgelist_weights, std::optional< rmm::device_uvector< int64_t > > &d_edgelist_edge_ids, std::optional< rmm::device_uvector< int32_t > > &d_edgelist_edge_types, std::optional< rmm::device_uvector< int64_t > > &d_edgelist_edge_start_times, std::optional< rmm::device_uvector< int64_t > > &d_edgelist_edge_end_times, bool groupby_and_counts_local_partition)
template rmm::device_uvector< int32_t > permute_range (raft::handle_t const &handle, raft::random::RngState &rng_state, int32_t local_range_start, int32_t local_range_size, bool multi_gpu, bool do_expensive_check)
template rmm::device_uvector< int64_t > permute_range (raft::handle_t const &handle, raft::random::RngState &rng_state, int64_t local_range_start, int64_t local_range_size, bool multi_gpu, bool do_expensive_check)
template void uniform_random_fill (rmm::cuda_stream_view const &stream_view, int32_t *d_value, size_t size, int32_t min_value, int32_t max_value, raft::random::RngState &rng_state)
template void uniform_random_fill (rmm::cuda_stream_view const &stream_view, float *d_value, size_t size, float min_value, float max_value, raft::random::RngState &rng_state)
template void scalar_fill (raft::handle_t const &handle, int32_t *d_value, size_t size, int32_t value)
template void scalar_fill (raft::handle_t const &handle, size_t *d_value, size_t size, size_t value)
template void scalar_fill (raft::handle_t const &handle, float *d_value, size_t size, float value)
template void sort_ints (raft::handle_t const &handle, raft::device_span< int32_t > values)
template size_t unique_ints (raft::handle_t const &handle, raft::device_span< int32_t > values)
template void sequence_fill (rmm::cuda_stream_view const &stream_view, int32_t *d_value, size_t size, int32_t start_value)
template void sequence_fill (rmm::cuda_stream_view const &stream_view, uint32_t *d_value, size_t size, uint32_t start_value)
template void transform_increment_ints (raft::device_span< int32_t > values, int32_t value, rmm::cuda_stream_view const &stream_view)
template void transform_not_equal (raft::device_span< int32_t > values, raft::device_span< bool > result, int32_t compare, rmm::cuda_stream_view const &stream_view)
template void stride_fill (rmm::cuda_stream_view const &stream_view, int32_t *d_value, size_t size, int32_t start_value, int32_t stride)
template void stride_fill (rmm::cuda_stream_view const &stream_view, uint32_t *d_value, size_t size, uint32_t start_value, uint32_t stride)
template int32_t compute_maximum_vertex_id (rmm::cuda_stream_view const &stream_view, int32_t const *d_edgelist_srcs, int32_t const *d_edgelist_dsts, size_t num_edges)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t > > filter_degree_0_vertices (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&d_vertices, rmm::device_uvector< int32_t > &&d_out_degs)
template bool is_sorted (raft::handle_t const &handle, raft::device_span< int32_t > span)
template bool is_equal (raft::handle_t const &handle, raft::device_span< int32_t > span1, raft::device_span< int32_t > span2)
template size_t count_values< int32_t > (raft::handle_t const &handle, raft::device_span< int32_t const > span, int32_t value)
template void uniform_random_fill (rmm::cuda_stream_view const &stream_view, int64_t *d_value, size_t size, int64_t min_value, int64_t max_value, raft::random::RngState &rng_state)
template void uniform_random_fill (rmm::cuda_stream_view const &stream_view, double *d_value, size_t size, double min_value, double max_value, raft::random::RngState &rng_state)
template void scalar_fill (raft::handle_t const &handle, int64_t *d_value, size_t size, int64_t value)
template void scalar_fill (raft::handle_t const &handle, double *d_value, size_t size, double value)
template void sort_ints (raft::handle_t const &handle, raft::device_span< int64_t > values)
template size_t unique_ints (raft::handle_t const &handle, raft::device_span< int64_t > values)
template void sequence_fill (rmm::cuda_stream_view const &stream_view, int64_t *d_value, size_t size, int64_t start_value)
template void sequence_fill (rmm::cuda_stream_view const &stream_view, uint64_t *d_value, size_t size, uint64_t start_value)
template void transform_increment_ints (raft::device_span< int64_t > values, int64_t value, rmm::cuda_stream_view const &stream_view)
template void transform_not_equal (raft::device_span< int64_t > values, raft::device_span< bool > result, int64_t compare, rmm::cuda_stream_view const &stream_view)
template void stride_fill (rmm::cuda_stream_view const &stream_view, int64_t *d_value, size_t size, int64_t start_value, int64_t stride)
template void stride_fill (rmm::cuda_stream_view const &stream_view, uint64_t *d_value, size_t size, uint64_t start_value, uint64_t stride)
template int64_t compute_maximum_vertex_id (rmm::cuda_stream_view const &stream_view, int64_t const *d_edgelist_srcs, int64_t const *d_edgelist_dsts, size_t num_edges)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int64_t > > filter_degree_0_vertices (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&d_vertices, rmm::device_uvector< int64_t > &&d_out_degs)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t > > filter_degree_0_vertices (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&d_vertices, rmm::device_uvector< int64_t > &&d_out_degs)
template bool is_sorted (raft::handle_t const &handle, raft::device_span< int64_t > span)
template bool is_equal (raft::handle_t const &handle, raft::device_span< int64_t > span1, raft::device_span< int64_t > span2)
template size_t count_values< int64_t > (raft::handle_t const &handle, raft::device_span< int64_t const > span, int64_t value)
template<typename T>
rmm::device_uvector<T> append_all(raft::handle_t const &handle, std::vector<rmm::device_uvector<T>> &&input)#
template<typename uvertex_t> __device__ std::enable_if_t< sizeof(uvertex_t)==8, uvertex_t > bitreversal (uvertex_t value)
template<typename uvertex_t> __device__ std::enable_if_t< sizeof(uvertex_t)==4, uvertex_t > bitreversal (uvertex_t value)
template<typename uvertex_t> __device__ std::enable_if_t< sizeof(uvertex_t)==2, uvertex_t > bitreversal (uvertex_t value)
template<typename vertex_t> __device__ vertex_t scramble (vertex_t value, size_t lgN)
template<typename vertex_t, typename edge_t, typename weight_t>
void barnes_hut(raft::handle_t const &handle, legacy::GraphCOOView<vertex_t, edge_t, weight_t> &graph, float *pos, const int max_iter = 500, float *x_start = nullptr, float *y_start = nullptr, bool outbound_attraction_distribution = true, bool lin_log_mode = false, bool prevent_overlapping = false, const float edge_weight_influence = 1.0, const float jitter_tolerance = 1.0, const float theta = 0.5, const float scaling_ratio = 2.0, bool strong_gravity_mode = false, const float gravity = 1.0, bool verbose = false, internals::GraphBasedDimRedCallback *callback = nullptr)#
static __global__ void InitializationKernel (unsigned *restrict limiter, int *restrict maxdepthd, float *restrict radiusd)

初始化对象的状态。这可以加速整体内核的执行。

static __global__ void ResetKernel (float *restrict radiusd_squared, int *restrict bottomd, const int NNODES, const float *restrict radiusd)

重置根节点。

static __global__ __launch_bounds__ (THREADS1, FACTOR1) void BoundingBoxKernel(int *restrict startd

计算嵌入中每个点的边界框。

for (int j=i+blockIdx.x *THREADS1;j< N;j+=inc)
for (int j=THREADS1/2;j > i;j/=2)
if (i==0)
static __global__ __launch_bounds__ (1024, 1) void ClearKernel1(int *restrict childd

清理部分状态向量。

清理更多状态向量。

if (k< FOUR_N) k+
static __global__ __launch_bounds__ (THREADS2, FACTOR2) void TreeBuildingKernel(int *restrict childd

构建实际的 KD 树。

while (i< N)
if (localmaxdepth > 32) localmaxdepth
atomicMax(maxdepthd, localmaxdepth)#
static __global__ __launch_bounds__ (THREADS3, FACTOR3) void SummarizationKernel(int *restrict countd

通过单元格聚集来汇总 KD 树。

while (k<=NNODES)
static __global__ __launch_bounds__ (THREADS4, FACTOR4) void SortKernel(int *restrict sortd

对单元格进行排序。

while (k >=bottom)
static __global__ __launch_bounds__ (THREADS5, FACTOR5) void RepulsionKernel(const float scaling_ratio

使用 KD 树计算斥力。

if (threadIdx.x==0)
__syncthreads()#
__threadfence_block()#
static __global__ __launch_bounds__ (THREADS6, FACTOR6) void apply_forces_bh(float *restrict Y_x
template<typename vertex_t, typename edge_t, typename weight_t>
void exact_fa2(raft::handle_t const &handle, legacy::GraphCOOView<vertex_t, edge_t, weight_t> &graph, float *pos, const int max_iter = 500, float *x_start = nullptr, float *y_start = nullptr, bool outbound_attraction_distribution = true, bool lin_log_mode = false, bool prevent_overlapping = false, const float edge_weight_influence = 1.0, const float jitter_tolerance = 1.0, const float scaling_ratio = 2.0, bool strong_gravity_mode = false, const float gravity = 1.0, bool verbose = false, internals::GraphBasedDimRedCallback *callback = nullptr)#
template<typename vertex_t> static __global__ void repulsion_kernel (const float *restrict x_pos, const float *restrict y_pos, float *restrict repel_x, float *restrict repel_y, const int *restrict mass, const float scaling_ratio, const vertex_t n)
template<typename vertex_t, int TPB_X = 32, int TPB_Y = 32> void apply_repulsion (const float *restrict x_pos, const float *restrict y_pos, float *restrict repel_x, float *restrict repel_y, const int *restrict mass, const float scaling_ratio, const vertex_t n, cudaStream_t stream)
template<typename vertex_t, typename edge_t, typename weight_t> static __global__ void attraction_kernel (const vertex_t *restrict row, const vertex_t *restrict col, const weight_t *restrict v, const edge_t e, const float *restrict x_pos, const float *restrict y_pos, float *restrict attract_x, float *restrict attract_y, const int *restrict mass, bool outbound_attraction_distribution, bool lin_log_mode, const float edge_weight_influence, const float coef)
template<typename vertex_t, typename edge_t, typename weight_t> void apply_attraction (const vertex_t *restrict row, const vertex_t *restrict col, const weight_t *restrict v, const edge_t e, const float *restrict x_pos, const float *restrict y_pos, float *restrict attract_x, float *restrict attract_y, const int *restrict mass, bool outbound_attraction_distribution, bool lin_log_mode, const float edge_weight_influence, const float coef, cudaStream_t stream)
template<typename vertex_t> static __global__ void linear_gravity_kernel (const float *restrict x_pos, const float *restrict y_pos, float *restrict attract_x, float *restrict attract_y, const int *restrict mass, const float gravity, const vertex_t n)
template<typename vertex_t> static __global__ void strong_gravity_kernel (const float *restrict x_pos, const float *restrict y_pos, float *restrict attract_x, float *restrict attract_y, const int *restrict mass, const float gravity, const float scaling_ratio, const vertex_t n)
template<typename vertex_t> void apply_gravity (const float *restrict x_pos, const float *restrict y_pos, float *restrict attract_x, float *restrict attract_y, const int *restrict mass, const float gravity, bool strong_gravity_mode, const float scaling_ratio, const vertex_t n, cudaStream_t stream)
template<typename vertex_t> static __global__ void local_speed_kernel (const float *restrict repel_x, const float *restrict repel_y, const float *restrict attract_x, const float *restrict attract_y, const float *restrict old_dx, const float *restrict old_dy, const int *restrict mass, float *restrict swinging, float *restrict traction, const vertex_t n)
template<typename vertex_t> void compute_local_speed (const float *restrict repel_x, const float *restrict repel_y, const float *restrict attract_x, const float *restrict attract_y, float *restrict old_dx, float *restrict old_dy, const int *restrict mass, float *restrict swinging, float *restrict traction, const vertex_t n, cudaStream_t stream)
template<typename vertex_t> void adapt_speed (const float jitter_tolerance, float *restrict jt, float *restrict speed, float *restrict speed_efficiency, const float s, const float t, const vertex_t n)
template<typename vertex_t> static __global__ void update_positions_kernel (float *restrict x_pos, float *restrict y_pos, const float *restrict repel_x, const float *restrict repel_y, const float *restrict attract_x, const float *restrict attract_y, float *restrict old_dx, float *restrict old_dy, const float *restrict swinging, const float speed, const vertex_t n)
template<typename vertex_t> void apply_forces (float *restrict x_pos, float *restrict y_pos, const float *restrict repel_x, const float *restrict repel_y, const float *restrict attract_x, const float *restrict attract_y, float *restrict old_dx, float *restrict old_dy, const float *restrict swinging, const float speed, const vertex_t n, cudaStream_t stream)
inline int getMultiProcessorCount()#

获取多处理器数量参数的辅助方法。

template<typename weight_t>
weight_t default_epsilon()#
template<>
float default_epsilon()#
template<>
double default_epsilon()#
template<typename index_t, typename weight_t>
weight_t hungarian(raft::handle_t const &handle, index_t num_rows, index_t num_cols, weight_t const *d_original_cost, index_t *d_assignment, weight_t epsilon)#
template<typename vertex_t, typename edge_t, typename weight_t>
weight_t hungarian_sparse(raft::handle_t const &handle, legacy::GraphCOOView<vertex_t, edge_t, weight_t> const &graph, vertex_t num_workers, vertex_t const *workers, vertex_t *assignment, weight_t epsilon)#
template<typename GraphViewType, typename ReduceOp, typename result_t>
void normalize(raft::handle_t const &handle, GraphViewType const &graph_view, result_t *hubs, result_t init, ReduceOp reduce_op)#
template<typename GraphViewType, typename result_t>
std::tuple<result_t, size_t> hits(raft::handle_t const &handle, GraphViewType const &graph_view, result_t *const hubs, result_t *const authorities, result_t epsilon, size_t max_iterations, bool has_initial_hubs_guess, bool normalize, bool do_expensive_check)#
template<typename GraphViewType, typename weight_t, typename result_t>
centrality_algorithm_metadata_t pagerank(raft::handle_t const &handle, GraphViewType const &pull_graph_view, std::optional<edge_property_view_t<typename GraphViewType::edge_type, weight_t const*>> edge_weight_view, std::optional<raft::device_span<weight_t const>> precomputed_vertex_out_weight_sums, std::optional<std::tuple<raft::device_span<typename GraphViewType::vertex_type const>, raft::device_span<result_t const>>> personalization, raft::device_span<result_t> pageranks, result_t alpha, result_t epsilon, size_t max_iterations, bool do_expensive_check)#
template<typename vertex_t, typename edge_t, typename weight_t, bool multi_gpu, typename functor_t>
rmm::device_uvector<weight_t> similarity(raft::handle_t const &handle, graph_view_t<vertex_t, edge_t, false, multi_gpu> const &graph_view, std::optional<edge_property_view_t<edge_t, weight_t const*>> edge_weight_view, std::tuple<raft::device_span<vertex_t const>, raft::device_span<vertex_t const>> vertex_pairs, functor_t functor, coefficient_t coeff, bool do_expensive_check = false)#
template<typename vertex_t, typename edge_t, typename weight_t, bool multi_gpu, typename functor_t>
std::tuple<rmm::device_uvector<vertex_t>, rmm::device_uvector<vertex_t>, rmm::device_uvector<weight_t>> all_pairs_similarity(raft::handle_t const &handle, graph_view_t<vertex_t, edge_t, false, multi_gpu> const &graph_view, std::optional<edge_property_view_t<edge_t, weight_t const*>> edge_weight_view, std::optional<raft::device_span<vertex_t const>> vertices, std::optional<size_t> topk, functor_t functor, coefficient_t coeff, bool do_expensive_check = false)#
template<typename GraphViewType, typename EdgeIdInputWrapper, typename EdgeTypeInputWrapper, typename EdgeTypeAndIdToSrcDstLookupContainerType>
EdgeTypeAndIdToSrcDstLookupContainerType build_edge_id_and_type_to_src_dst_lookup_map(raft::handle_t const &handle, GraphViewType const &graph_view, EdgeIdInputWrapper edge_id_view, EdgeTypeInputWrapper edge_type_view)#
template<typename vertex_t, typename edge_id_t, typename edge_type_t, typename EdgeTypeAndIdToSrcDstLookupContainerType, bool multi_gpu>
std::tuple<rmm::device_uvector<vertex_t>, rmm::device_uvector<vertex_t>> lookup_endpoints_from_edge_ids_and_single_type(raft::handle_t const &handle, EdgeTypeAndIdToSrcDstLookupContainerType const &search_container, raft::device_span<edge_id_t const> edge_ids_to_lookup, edge_type_t edge_type_to_lookup)#
template<typename vertex_t, typename edge_id_t, typename edge_type_t, typename EdgeTypeAndIdToSrcDstLookupContainerType, bool multi_gpu>
std::tuple<rmm::device_uvector<vertex_t>, rmm::device_uvector<vertex_t>> lookup_endpoints_from_edge_ids_and_types(raft::handle_t const &handle, EdgeTypeAndIdToSrcDstLookupContainerType const &search_container, raft::device_span<edge_id_t const> edge_ids_to_lookup, raft::device_span<edge_type_t const> edge_types_to_lookup)#
template<typename BufferKeyOutputIterator, typename BufferValueOutputIterator, typename e_op_result_t> __device__ void push_buffer_element (BufferKeyOutputIterator buffer_key_output_first, BufferValueOutputIterator buffer_value_output_first, size_t buffer_idx, cuda::std::optional< e_op_result_t > e_op_result)
template<typename BufferKeyOutputIterator, typename BufferValueOutputIterator, typename e_op_result_t> __device__ void warp_push_buffer_elements (BufferKeyOutputIterator buffer_key_output_first, BufferValueOutputIterator buffer_value_output_first, cuda::atomic_ref< size_t, cuda::thread_scope_device > &buffer_idx, int lane_id, cuda::std::optional< e_op_result_t > e_op_result)
template<bool hypersparse, typename GraphViewType, typename KeyIterator, typename EdgePartitionSrcValueInputWrapper, typename EdgePartitionDstValueInputWrapper, typename EdgePartitionEdgeValueInputWrapper, typename EdgePartitionEdgeMaskWrapper, typename BufferKeyOutputIterator, typename BufferValueOutputIterator, typename EdgeOp, typename PredOp> static __global__ void extract_transform_if_v_frontier_e_hypersparse_or_low_degree (edge_partition_device_view_t< typename GraphViewType::vertex_type, typename GraphViewType::edge_type, GraphViewType::is_multi_gpu > edge_partition, KeyIterator key_first, KeyIterator key_last, EdgePartitionSrcValueInputWrapper edge_partition_src_value_input, EdgePartitionDstValueInputWrapper edge_partition_dst_value_input, EdgePartitionEdgeValueInputWrapper edge_partition_e_value_input, cuda::std::optional< EdgePartitionEdgeMaskWrapper > edge_partition_e_mask, BufferKeyOutputIterator buffer_key_output_first, BufferValueOutputIterator buffer_value_output_first, size_t *buffer_idx_ptr, EdgeOp e_op, PredOp pred_op)
template<typename GraphViewType, typename KeyIterator, typename EdgePartitionSrcValueInputWrapper, typename EdgePartitionDstValueInputWrapper, typename EdgePartitionEdgeValueInputWrapper, typename EdgePartitionEdgeMaskWrapper, typename BufferKeyOutputIterator, typename BufferValueOutputIterator, typename EdgeOp, typename PredOp> static __global__ void extract_transform_if_v_frontier_e_mid_degree (edge_partition_device_view_t< typename GraphViewType::vertex_type, typename GraphViewType::edge_type, GraphViewType::is_multi_gpu > edge_partition, KeyIterator key_first, KeyIterator key_last, EdgePartitionSrcValueInputWrapper edge_partition_src_value_input, EdgePartitionDstValueInputWrapper edge_partition_dst_value_input, EdgePartitionEdgeValueInputWrapper edge_partition_e_value_input, cuda::std::optional< EdgePartitionEdgeMaskWrapper > edge_partition_e_mask, BufferKeyOutputIterator buffer_key_output_first, BufferValueOutputIterator buffer_value_output_first, size_t *buffer_idx_ptr, EdgeOp e_op, PredOp pred_op)
template<typename GraphViewType, typename KeyIterator, typename EdgePartitionSrcValueInputWrapper, typename EdgePartitionDstValueInputWrapper, typename EdgePartitionEdgeValueInputWrapper, typename EdgePartitionEdgeMaskWrapper, typename BufferKeyOutputIterator, typename BufferValueOutputIterator, typename EdgeOp, typename PredOp> static __global__ void extract_transform_if_v_frontier_e_high_degree (edge_partition_device_view_t< typename GraphViewType::vertex_type, typename GraphViewType::edge_type, GraphViewType::is_multi_gpu > edge_partition, KeyIterator key_first, raft::device_span< size_t const > key_local_degree_offsets, EdgePartitionSrcValueInputWrapper edge_partition_src_value_input, EdgePartitionDstValueInputWrapper edge_partition_dst_value_input, EdgePartitionEdgeValueInputWrapper edge_partition_e_value_input, cuda::std::optional< EdgePartitionEdgeMaskWrapper > edge_partition_e_mask, BufferKeyOutputIterator buffer_key_output_first, BufferValueOutputIterator buffer_value_output_first, size_t *buffer_idx_ptr, EdgeOp e_op, PredOp pred_op)
template<typename GraphViewType, typename InputKeyIterator, typename EdgePartitionSrcValueInputWrapper, typename EdgePartitionDstValueInputWrapper, typename EdgePartitionValueInputWrapper, typename EdgePartitionEdgeMaskWrapper, typename OptionalOutputKeyIterator, typename OptionalOutputValueIterator, typename EdgeOp, typename PredOp>
void extract_transform_if_v_frontier_e_edge_partition(raft::handle_t const &handle, edge_partition_device_view_t<typename GraphViewType::vertex_type, typename GraphViewType::edge_type, GraphViewType::is_multi_gpu> edge_partition, InputKeyIterator edge_partition_frontier_key_first, InputKeyIterator edge_partition_frontier_key_last, EdgePartitionSrcValueInputWrapper edge_partition_src_value_input, EdgePartitionDstValueInputWrapper edge_partition_dst_value_input, EdgePartitionValueInputWrapper edge_partition_e_value_input, cuda::std::optional<EdgePartitionEdgeMaskWrapper> edge_partition_e_mask, OptionalOutputKeyIterator output_key_first, OptionalOutputValueIterator output_value_first, raft::device_span<size_t> count, EdgeOp e_op, PredOp pred_op, std::optional<raft::device_span<size_t const>> high_segment_key_local_degree_offsets, std::optional<size_t> high_segment_edge_count, std::optional<raft::host_span<size_t const>> key_segment_offsets, std::optional<raft::host_span<size_t const>> const &edge_partition_stream_pool_indices)#
template<bool incoming, typename OutputKeyT, typename OutputValueT, typename GraphViewType, typename KeyBucketType, typename EdgeSrcValueInputWrapper, typename EdgeDstValueInputWrapper, typename EdgeValueInputWrapper, typename EdgeOp, typename PredOp>
std::tuple<optional_dataframe_buffer_type_t<OutputKeyT>, optional_dataframe_buffer_type_t<OutputValueT>> extract_transform_if_v_frontier_e(raft::handle_t const &handle, GraphViewType const &graph_view, KeyBucketType const &frontier, EdgeSrcValueInputWrapper edge_src_value_input, EdgeDstValueInputWrapper edge_dst_value_input, EdgeValueInputWrapper edge_value_input, EdgeOp e_op, PredOp pred_op, bool do_expensive_check = false)#
inline std::vector<size_t> init_stream_pool_indices(size_t max_tmp_buffer_size, size_t approx_tmp_buffer_size_per_loop, size_t loop_count, size_t num_streams_per_loop, size_t max_streams)#
template<typename InputIterator, typename FlagIterator, typename OutputIterator>
void copy_if_nosync(InputIterator input_first, InputIterator input_last, FlagIterator flag_first, OutputIterator output_first, raft::device_span<size_t> count, rmm::cuda_stream_view stream_view)#
template<typename InputIterator>
void count_nosync(InputIterator input_first, InputIterator input_last, raft::device_span<size_t> count, typename thrust::iterator_traits<InputIterator>::value_type value, rmm::cuda_stream_view stream_view)#
template<typename InputIterator>
void sum_nosync(InputIterator input_first, InputIterator input_last, raft::device_span<typename thrust::iterator_traits<InputIterator>::value_type> sum, rmm::cuda_stream_view stream_view)#
template<bool check_edge_mask, typename InputKeyIterator0, typename InputKeyIterator1, typename InputValueIterator0, typename InputValueIterator1, typename MaskIterator, typename OutputKeyIterator, typename OutputValueIterator0, typename OutputValueIterator1, typename edge_t> __device__ edge_t set_intersection_by_key_with_mask (InputKeyIterator0 input_key_first0, InputKeyIterator1 input_key_first1, InputValueIterator0 input_value_first0, InputValueIterator1 input_value_first1, MaskIterator mask_first, OutputKeyIterator output_key_first, OutputValueIterator0 output_value_first0, OutputValueIterator1 output_value_first1, edge_t input_start_offset0, edge_t input_size0, bool apply_mask0, edge_t input_start_offset1, edge_t input_size1, bool apply_mask1, size_t output_start_offset)
template<typename GraphViewType, typename VertexPairIterator, typename EdgeValueInputIterator>
std::conditional_t<!std::is_same_v<typename EdgeValueInputIterator::value_type, cuda::std::nullopt_t>, std::tuple<rmm::device_uvector<size_t>, rmm::device_uvector<typename GraphViewType::vertex_type>, rmm::device_uvector<typename EdgeValueInputIterator::value_type>, rmm::device_uvector<typename EdgeValueInputIterator::value_type>>, std::tuple<rmm::device_uvector<size_t>, rmm::device_uvector<typename GraphViewType::vertex_type>>> nbr_intersection(raft::handle_t const &handle, GraphViewType const &graph_view, EdgeValueInputIterator edge_value_input, VertexPairIterator vertex_pair_first, VertexPairIterator vertex_pair_last, std::array<bool, 2> intersect_dst_nbr, bool do_expensive_check = false)#
template<typename T>
auto allocate_optional_dataframe_buffer(size_t size, rmm::cuda_stream_view stream)#
template<typename T>
auto get_optional_dataframe_buffer_begin(optional_dataframe_buffer_type_t<T> &optional_dataframe_buffer)#
template<typename T>
auto get_optional_dataframe_buffer_end(optional_dataframe_buffer_type_t<T> &optional_dataframe_buffer)#
template<typename T>
auto get_optional_dataframe_buffer_cbegin(optional_dataframe_buffer_type_t<T> const &optional_dataframe_buffer)#
template<typename T>
auto get_optional_dataframe_buffer_cend(optional_dataframe_buffer_type_t<T> const &optional_dataframe_buffer)#
template<typename T>
void reserve_optional_dataframe_buffer(optional_dataframe_buffer_type_t<T> &optional_dataframe_buffer, size_t new_buffer_capacity, rmm::cuda_stream_view stream_view)#
template<typename T>
void resize_optional_dataframe_buffer(optional_dataframe_buffer_type_t<T> &optional_dataframe_buffer, size_t new_buffer_size, rmm::cuda_stream_view stream_view)#
template<typename T>
void shrink_to_fit_optional_dataframe_buffer(optional_dataframe_buffer_type_t<T> &optional_dataframe_buffer, rmm::cuda_stream_view stream_view)#
template<typename T>
size_t size_optional_dataframe_buffer(optional_dataframe_buffer_type_t<T> &optional_dataframe_buffer)#
template<typename ValueIterator>
std::tuple<rmm::device_uvector<size_t>, std::vector<size_t>> partition_v_frontier(raft::handle_t const &handle, ValueIterator frontier_value_first, ValueIterator frontier_value_last, std::vector<typename thrust::iterator_traits<ValueIterator>::value_type> const &thresholds)#
template<typename value_idx_t, typename ValueIterator>
std::tuple<rmm::device_uvector<size_t>, rmm::device_uvector<value_idx_t>, std::vector<size_t>> partition_v_frontier_per_value_idx(raft::handle_t const &handle, ValueIterator frontier_value_first, ValueIterator frontier_value_last, raft::host_span<typename thrust::iterator_traits<ValueIterator>::value_type const> thresholds, size_t num_values_per_key)#
template<typename GraphViewType, typename key_t, typename EdgePartitionSrcValueInputWrapper, typename EdgePartitionDstValueInputWrapper, typename EdgePartitionEdgeValueInputWrapper, typename PredOp>
__device__ auto init_pred_op(edge_partition_device_view_t<typename GraphViewType::vertex_type, typename GraphViewType::edge_type, GraphViewType::is_multi_gpu> const &edge_partition, EdgePartitionSrcValueInputWrapper const &edge_partition_src_value_input, EdgePartitionDstValueInputWrapper const &edge_partition_dst_value_input, EdgePartitionEdgeValueInputWrapper const &edge_partition_e_value_input, PredOp const &pred_op, key_t key, typename GraphViewType::vertex_type major_offset, typename GraphViewType::edge_type const *indices, typename GraphViewType::edge_type edge_offset)#
template<bool update_major, typename vertex_t, typename edge_t, bool multi_gpu, typename result_t, typename TransformOp, typename ReduceOp, typename PredOp, typename ResultValueOutputIteratorOrWrapper> __device__ void update_result_value_output (edge_partition_device_view_t< vertex_t, edge_t, multi_gpu > const &edge_partition, vertex_t const *indices, edge_t local_degree, TransformOp const &transform_op, result_t init, ReduceOp const &reduce_op, PredOp const &pred_op, size_t output_idx, ResultValueOutputIteratorOrWrapper &result_value_output)
template<bool update_major, typename GraphViewType, typename OptionalKeyIterator, typename EdgePartitionSrcValueInputWrapper, typename EdgePartitionDstValueInputWrapper, typename EdgePartitionEdgeValueInputWrapper, typename EdgePartitionEdgeMaskWrapper, typename ResultValueOutputIteratorOrWrapper, typename EdgeOp, typename ReduceOp, typename PredOp, typename T> static __global__ void per_v_transform_reduce_e_hypersparse (edge_partition_device_view_t< typename GraphViewType::vertex_type, typename GraphViewType::edge_type, GraphViewType::is_multi_gpu > edge_partition, OptionalKeyIterator key_first, OptionalKeyIterator key_last, EdgePartitionSrcValueInputWrapper edge_partition_src_value_input, EdgePartitionDstValueInputWrapper edge_partition_dst_value_input, EdgePartitionEdgeValueInputWrapper edge_partition_e_value_input, cuda::std::optional< EdgePartitionEdgeMaskWrapper > edge_partition_e_mask, ResultValueOutputIteratorOrWrapper result_value_output, EdgeOp e_op, T init, ReduceOp reduce_op, PredOp pred_op)
template<bool update_major, typename GraphViewType, typename KeyIterator, typename EdgePartitionSrcValueInputWrapper, typename EdgePartitionDstValueInputWrapper, typename EdgePartitionEdgeValueInputWrapper, typename EdgePartitionEdgeMaskWrapper, typename ResultValueOutputIteratorOrWrapper, typename EdgeOp, typename ReduceOp, typename PredOp, typename T> static __global__ void per_v_transform_reduce_e_low_degree (edge_partition_device_view_t< typename GraphViewType::vertex_type, typename GraphViewType::edge_type, GraphViewType::is_multi_gpu > edge_partition, KeyIterator key_first, KeyIterator key_last, EdgePartitionSrcValueInputWrapper edge_partition_src_value_input, EdgePartitionDstValueInputWrapper edge_partition_dst_value_input, EdgePartitionEdgeValueInputWrapper edge_partition_e_value_input, cuda::std::optional< EdgePartitionEdgeMaskWrapper > edge_partition_e_mask, ResultValueOutputIteratorOrWrapper result_value_output, EdgeOp e_op, T init, ReduceOp reduce_op, PredOp pred_op)
template<bool update_major, typename GraphViewType, typename KeyIterator, typename EdgePartitionSrcValueInputWrapper, typename EdgePartitionDstValueInputWrapper, typename EdgePartitionEdgeValueInputWrapper, typename EdgePartitionEdgeMaskWrapper, typename ResultValueOutputIteratorOrWrapper, typename EdgeOp, typename ReduceOp, typename PredOp, typename T> static __global__ void per_v_transform_reduce_e_mid_degree (edge_partition_device_view_t< typename GraphViewType::vertex_type, typename GraphViewType::edge_type, GraphViewType::is_multi_gpu > edge_partition, KeyIterator key_first, KeyIterator key_last, EdgePartitionSrcValueInputWrapper edge_partition_src_value_input, EdgePartitionDstValueInputWrapper edge_partition_dst_value_input, EdgePartitionEdgeValueInputWrapper edge_partition_e_value_input, cuda::std::optional< EdgePartitionEdgeMaskWrapper > edge_partition_e_mask, ResultValueOutputIteratorOrWrapper result_value_output, EdgeOp e_op, T init, T identity_element, ReduceOp reduce_op, PredOp pred_op)
template<bool update_major, typename GraphViewType, typename KeyIterator, typename EdgePartitionSrcValueInputWrapper, typename EdgePartitionDstValueInputWrapper, typename EdgePartitionEdgeValueInputWrapper, typename EdgePartitionEdgeMaskWrapper, typename ResultValueOutputIteratorOrWrapper, typename EdgeOp, typename ReduceOp, typename PredOp, typename T> static __global__ void per_v_transform_reduce_e_high_degree (edge_partition_device_view_t< typename GraphViewType::vertex_type, typename GraphViewType::edge_type, GraphViewType::is_multi_gpu > edge_partition, KeyIterator key_first, KeyIterator key_last, EdgePartitionSrcValueInputWrapper edge_partition_src_value_input, EdgePartitionDstValueInputWrapper edge_partition_dst_value_input, EdgePartitionEdgeValueInputWrapper edge_partition_e_value_input, cuda::std::optional< EdgePartitionEdgeMaskWrapper > edge_partition_e_mask, ResultValueOutputIteratorOrWrapper result_value_output, EdgeOp e_op, T init, T identity_element, ReduceOp reduce_op, PredOp pred_op)
template<typename vertex_t, typename priority_t, typename ValueIterator>
void compute_priorities(raft::comms::comms_t const &comm, ValueIterator value_first, raft::device_span<priority_t> priorities, std::optional<std::variant<raft::device_span<uint32_t const>, raft::device_span<size_t const>>> hypersparse_key_offsets, size_t contiguous_size, int root, int subgroup_size, typename thrust::iterator_traits<ValueIterator>::value_type init, bool ignore_local_values, rmm::cuda_stream_view stream_view)#
template<typename vertex_t, typename priority_t>
std::variant<rmm::device_uvector<std::conditional_t<std::is_same_v<priority_t, uint32_t>, int, priority_t>>, std::optional<rmm::device_uvector<uint32_t>>> compute_selected_ranks_from_priorities(raft::comms::comms_t const &comm, raft::device_span<priority_t const> priorities, std::optional<std::variant<raft::device_span<uint32_t const>, raft::device_span<size_t const>>> hypersparse_key_offsets, size_t contiguous_size, int root, int subgroup_size, bool ignore_local_values, rmm::cuda_stream_view stream_view)#
template<bool update_major, typename GraphViewType, typename OptionalKeyIterator, typename EdgePartitionSrcValueInputWrapper, typename EdgePartitionDstValueInputWrapper, typename EdgePartitionValueInputWrapper, typename EdgePartitionEdgeMaskWrapper, typename ResultValueOutputIteratorOrWrapper, typename EdgeOp, typename ReduceOp, typename PredOp, typename T>
void per_v_transform_reduce_e_edge_partition(raft::handle_t const &handle, edge_partition_device_view_t<typename GraphViewType::vertex_type, typename GraphViewType::edge_type, GraphViewType::is_multi_gpu> edge_partition, OptionalKeyIterator edge_partition_key_first, OptionalKeyIterator edge_partition_key_last, EdgePartitionSrcValueInputWrapper edge_partition_src_value_input, EdgePartitionDstValueInputWrapper edge_partition_dst_value_input, EdgePartitionValueInputWrapper edge_partition_e_value_input, cuda::std::optional<EdgePartitionEdgeMaskWrapper> edge_partition_e_mask, ResultValueOutputIteratorOrWrapper output_buffer, EdgeOp e_op, T major_init, T major_identity_element, ReduceOp reduce_op, PredOp pred_op, std::optional<raft::host_span<size_t const>> key_segment_offsets, std::optional<raft::host_span<size_t const>> const &edge_partition_stream_pool_indices)#
template<bool incoming, typename GraphViewType, typename OptionalKeyIterator, typename EdgeSrcValueInputWrapper, typename EdgeDstValueInputWrapper, typename EdgeValueInputWrapper, typename EdgeOp, typename ReduceOp, typename PredOp, typename T, typename VertexValueOutputIterator>
void per_v_transform_reduce_e(raft::handle_t const &handle, GraphViewType const &graph_view, OptionalKeyIterator sorted_unique_key_first, OptionalKeyIterator sorted_unique_key_last, EdgeSrcValueInputWrapper edge_src_value_input, EdgeDstValueInputWrapper edge_dst_value_input, EdgeValueInputWrapper edge_value_input, EdgeOp e_op, T init, ReduceOp reduce_op, PredOp pred_op, VertexValueOutputIterator vertex_value_output_first)#
template<typename vertex_t, typename priority_t> __host__ __device__ priority_t rank_to_priority (int rank, int root, int subgroup_size, int comm_size, vertex_t offset)
template<typename vertex_t, typename priority_t> __host__ __device__ int priority_to_rank (priority_t priority, int root, int subgroup_size, int comm_size, vertex_t offset)
template<typename vertex_t, typename edge_t, bool multi_gpu> static __global__ void compute_valid_local_nbr_count_inclusive_sums_mid_local_degree (edge_partition_device_view_t< vertex_t, edge_t, multi_gpu > edge_partition, edge_partition_edge_property_device_view_t< edge_t, uint32_t const *, bool > edge_partition_e_mask, vertex_t const *edge_partition_frontier_major_first, raft::device_span< size_t const > inclusive_sum_offsets, raft::device_span< size_t const > frontier_indices, raft::device_span< edge_t > inclusive_sums)
template<typename vertex_t, typename edge_t, bool multi_gpu> static __global__ void compute_valid_local_nbr_count_inclusive_sums_high_local_degree (edge_partition_device_view_t< vertex_t, edge_t, multi_gpu > edge_partition, edge_partition_edge_property_device_view_t< edge_t, uint32_t const *, bool > edge_partition_e_mask, vertex_t const *edge_partition_frontier_major_first, raft::device_span< size_t const > inclusive_sum_offsets, raft::device_span< size_t const > frontier_indices, raft::device_span< edge_t > inclusive_sums)
template<typename KeyIterator>
std::tuple<dataframe_buffer_type_t<typename thrust::iterator_traits<KeyIterator>::value_type>, rmm::device_uvector<size_t>, std::vector<size_t>> compute_unique_keys(raft::handle_t const &handle, KeyIterator aggregate_local_frontier_key_first, raft::host_span<size_t const> local_frontier_offsets)#
template<typename value_t>
std::tuple<rmm::device_uvector<value_t>, rmm::device_uvector<value_t>> compute_frontier_value_sums_and_partitioned_local_value_sum_displacements(raft::handle_t const &handle, raft::device_span<value_t const> aggregate_local_frontier_local_value_sums, raft::host_span<size_t const> local_frontier_offsets, size_t num_values_per_key)#
template<typename GraphViewType, typename VertexIterator>
std::vector<std::tuple<rmm::device_uvector<size_t>, rmm::device_uvector<typename GraphViewType::edge_type>>> compute_valid_local_nbr_count_inclusive_sums(raft::handle_t const &handle, GraphViewType const &graph_view, VertexIterator aggregate_local_frontier_major_first, raft::host_span<size_t const> local_frontier_offsets)#
template<typename edge_t, typename bias_t>
void sample_nbr_index_with_replacement(raft::handle_t const &handle, raft::device_span<edge_t const> frontier_degrees, std::optional<raft::device_span<size_t const>> frontier_indices, raft::device_span<edge_t> nbr_indices, raft::random::RngState &rng_state, size_t K)#
template<typename edge_t, typename edge_type_t, typename bias_t>
void sample_nbr_index_with_replacement(raft::handle_t const &handle, raft::device_span<edge_t const> frontier_per_type_degrees, std::optional<std::tuple<raft::device_span<size_t const>, raft::device_span<edge_type_t const>>> frontier_index_type_pairs, raft::device_span<edge_t> per_type_nbr_indices, raft::random::RngState &rng_state, raft::device_span<size_t const> K_offsets, size_t K_sum)#
template<typename edge_t, typename bias_t>
void sample_nbr_index_without_replacement(raft::handle_t const &handle, raft::device_span<edge_t const> frontier_degrees, std::optional<raft::device_span<size_t const>> frontier_indices, raft::device_span<edge_t> nbr_indices, raft::random::RngState &rng_state, size_t K, bool algo_r = true)#
template<typename edge_t, typename edge_type_t, typename bias_t>
void sample_nbr_index_without_replacement(raft::handle_t const &handle, raft::device_span<edge_t const> frontier_per_type_degrees, std::optional<std::tuple<raft::device_span<size_t const>, raft::device_span<edge_type_t const>>> frontier_index_type_pairs, raft::device_span<edge_t> per_type_nbr_indices, raft::random::RngState &rng_state, raft::device_span<size_t const> K_offsets, size_t K_sum, bool algo_r = true)#
template<typename edge_t>
rmm::device_uvector<edge_t> compute_homogeneous_uniform_sampling_index_without_replacement(raft::handle_t const &handle, raft::device_span<edge_t const> frontier_degrees, raft::random::RngState &rng_state, size_t K)#
template<typename edge_t, typename edge_type_t>
rmm::device_uvector<edge_t> compute_heterogeneous_uniform_sampling_index_without_replacement(raft::handle_t const &handle, raft::device_span<edge_t const> frontier_per_type_degrees, raft::random::RngState &rng_state, raft::device_span<size_t const> K_offsets, size_t K_sum)#
template<typename edge_t, typename bias_t>
void compute_homogeneous_biased_sampling_index_without_replacement(raft::handle_t const &handle, std::optional<raft::device_span<size_t const>> input_frontier_indices, raft::device_span<size_t const> input_degree_offsets, raft::device_span<bias_t const> input_biases, std::optional<raft::device_span<size_t const>> output_frontier_indices, raft::device_span<edge_t> output_nbr_indices, std::optional<raft::device_span<bias_t>> output_keys, raft::random::RngState &rng_state, size_t K, bool jump)#
template<typename edge_t, typename edge_type_t, typename bias_t>
void compute_heterogeneous_biased_sampling_index_without_replacement(raft::handle_t const &handle, std::optional<raft::device_span<size_t const>> input_frontier_indices, raft::device_span<edge_type_t const> input_frontier_edge_types, raft::device_span<size_t const> input_per_type_degree_offsets, raft::device_span<bias_t const> input_biases, raft::device_span<size_t const> output_start_displacements, raft::device_span<edge_t const> output_per_type_nbr_indices, std::optional<raft::device_span<bias_t>> output_keys, raft::random::RngState &rng_state, raft::device_span<size_t const> K_offsets, bool jump)#
template<typename GraphViewType, typename VertexIterator>
rmm::device_uvector<typename GraphViewType::edge_type> compute_aggregate_local_frontier_local_degrees(raft::handle_t const &handle, GraphViewType const &graph_view, VertexIterator aggregate_local_frontier_major_first, raft::host_span<size_t const> local_frontier_offsets)#
template<typename edge_t, typename edge_type_t>
rmm::device_uvector<edge_t> compute_aggregate_local_frontier_per_type_local_degrees(raft::handle_t const &handle, raft::device_span<size_t const> aggregate_local_frontier_key_idx_to_unique_key_idx, raft::host_span<size_t const> local_frontier_offsets, raft::device_span<edge_type_t const> aggregate_local_frontier_unique_key_edge_types, raft::device_span<size_t const> aggregate_local_frontier_unique_key_local_degree_offsets, raft::host_span<size_t const> local_frontier_unique_key_offsets, size_t num_edge_types)#
template<typename GraphViewType, typename KeyIterator, typename EdgeSrcValueInputWrapper, typename EdgeDstValueInputWrapper, typename EdgeValueInputWrapper, typename BiasEdgeOp>
std::tuple<rmm::device_uvector<typename edge_op_result_type<typename thrust::iterator_traits<KeyIterator>::value_type, typename GraphViewType::vertex_type, typename EdgeSrcValueInputWrapper::value_type, typename EdgeDstValueInputWrapper::value_type, typename EdgeValueInputWrapper::value_type, BiasEdgeOp>::type>, rmm::device_uvector<typename GraphViewType::edge_type>, rmm::device_uvector<size_t>> compute_aggregate_local_frontier_biases(raft::handle_t const &handle, GraphViewType const &graph_view, KeyIterator aggregate_local_frontier_key_first, EdgeSrcValueInputWrapper edge_src_value_input, EdgeDstValueInputWrapper edge_dst_value_input, EdgeValueInputWrapper edge_value_input, BiasEdgeOp bias_e_op, raft::host_span<size_t const> local_frontier_offsets, bool do_expensive_check)#
template<typename GraphViewType, typename KeyIterator, typename EdgeSrcValueInputWrapper, typename EdgeDstValueInputWrapper, typename EdgeValueInputWrapper, typename BiasEdgeOp, typename EdgeTypeInputWrapper>
std::tuple<rmm::device_uvector<typename edge_op_result_type<typename thrust::iterator_traits<KeyIterator>::value_type, typename GraphViewType::vertex_type, typename EdgeSrcValueInputWrapper::value_type, typename EdgeDstValueInputWrapper::value_type, typename EdgeValueInputWrapper::value_type, BiasEdgeOp>::type>, rmm::device_uvector<typename EdgeTypeInputWrapper::value_type>, rmm::device_uvector<typename GraphViewType::edge_type>, rmm::device_uvector<size_t>> compute_aggregate_local_frontier_bias_type_pairs(raft::handle_t const &handle, GraphViewType const &graph_view, KeyIterator aggregate_local_frontier_key_first, EdgeSrcValueInputWrapper edge_src_value_input, EdgeDstValueInputWrapper edge_dst_value_input, EdgeValueInputWrapper edge_value_input, BiasEdgeOp bias_e_op, EdgeTypeInputWrapper edge_type_input, raft::host_span<size_t const> local_frontier_offsets, bool do_expensive_check)#
template<typename GraphViewType, typename KeyIterator, typename EdgeTypeInputWrapper>
std::tuple<rmm::device_uvector<typename EdgeTypeInputWrapper::value_type>, rmm::device_uvector<size_t>> compute_aggregate_local_frontier_edge_types(raft::handle_t const &handle, GraphViewType const &graph_view, KeyIterator aggregate_local_frontier_key_first, EdgeTypeInputWrapper edge_type_input, raft::host_span<size_t const> local_frontier_offsets)#
template<typename value_t>
std::tuple<rmm::device_uvector<value_t>, rmm::device_uvector<size_t>, std::vector<size_t>> shuffle_and_compute_local_nbr_values(raft::handle_t const &handle, rmm::device_uvector<value_t> &&sample_nbr_values, raft::device_span<value_t const> frontier_partitioned_value_local_sum_displacements, size_t K, value_t invalid_value)#
template<typename edge_type_t, typename value_t>
std::tuple<rmm::device_uvector<value_t>, rmm::device_uvector<edge_type_t>, rmm::device_uvector<size_t>, std::vector<size_t>> shuffle_and_compute_per_type_local_nbr_values(raft::handle_t const &handle, rmm::device_uvector<value_t> &&sample_per_type_nbr_values, raft::device_span<value_t const> frontier_partitioned_per_type_value_local_sum_displacements, raft::device_span<size_t const> K_offsets, size_t K_sum, value_t invalid_value)#
template<typename edge_t, typename edge_type_t>
rmm::device_uvector<edge_t> compute_local_nbr_indices_from_per_type_local_nbr_indices(raft::handle_t const &handle, raft::device_span<size_t const> aggregate_local_frontier_key_idx_to_unique_key_idx, raft::host_span<size_t const> local_frontier_offsets, raft::device_span<size_t const> aggregate_local_frontier_unique_key_per_type_local_degree_offsets, raft::host_span<size_t const> local_frontier_unique_key_offsets, std::optional<std::tuple<raft::device_span<edge_type_t const>, raft::device_span<size_t const>>> edge_type_key_idx_pairs, rmm::device_uvector<edge_t> &&per_type_local_nbr_indices, raft::host_span<size_t const> local_frontier_sample_offsets, raft::device_span<size_t const> K_offsets, size_t K_sum)#
template<typename edge_t, typename edge_type_t, typename bias_t, bool multi_gpu>
std::tuple<rmm::device_uvector<edge_t>, std::optional<rmm::device_uvector<size_t>>, std::vector<size_t>> biased_sample_with_replacement(raft::handle_t const &handle, raft::device_span<size_t const> aggregate_local_frontier_key_idx_to_unique_key_idx, raft::host_span<size_t const> local_frontier_offsets, raft::device_span<bias_t const> aggregate_local_frontier_unique_key_biases, raft::device_span<size_t const> aggregate_local_frontier_unique_key_per_type_local_degree_offsets, raft::host_span<size_t const> local_frontier_unique_key_offsets, raft::random::RngState &rng_state, raft::host_span<size_t const> Ks)#
template<typename edge_t, typename bias_t, bool multi_gpu>
std::tuple<rmm::device_uvector<edge_t>, std::optional<rmm::device_uvector<size_t>>, std::vector<size_t>> homogeneous_biased_sample_without_replacement(raft::handle_t const &handle, raft::device_span<size_t const> aggregate_local_frontier_key_idx_to_unique_key_idx, raft::host_span<size_t const> local_frontier_offsets, raft::device_span<bias_t const> aggregate_local_frontier_unique_key_biases, raft::device_span<size_t const> aggregate_local_frontier_unique_key_local_degree_offsets, raft::host_span<size_t const> local_frontier_unique_key_offsets, raft::random::RngState &rng_state, size_t K)#
template<typename edge_t, typename edge_type_t, typename bias_t, bool multi_gpu>
std::tuple<rmm::device_uvector<edge_t>, std::optional<rmm::device_uvector<size_t>>, std::vector<size_t>> heterogeneous_biased_sample_without_replacement(raft::handle_t const &handle, raft::device_span<size_t const> aggregate_local_frontier_key_idx_to_unique_key_idx, raft::host_span<size_t const> local_frontier_offsets, raft::device_span<bias_t const> aggregate_local_frontier_unique_key_biases, raft::device_span<size_t const> aggregate_local_frontier_unique_key_per_type_local_degree_offsets, raft::host_span<size_t const> local_frontier_unique_key_offsets, raft::random::RngState &rng_state, raft::host_span<size_t const> Ks)#
template<typename edge_t>
rmm::device_uvector<edge_t> remap_local_nbr_indices(raft::handle_t const &handle, raft::device_span<size_t const> aggregate_local_frontier_key_idx_to_unique_key_idx, raft::host_span<size_t const> local_frontier_offsets, raft::device_span<edge_t const> aggregate_local_frontier_unique_key_org_indices, raft::device_span<size_t const> aggregate_local_frontier_unique_key_local_degree_offsets, raft::host_span<size_t const> local_frontier_unique_key_offsets, rmm::device_uvector<edge_t> &&local_nbr_indices, std::optional<raft::device_span<size_t const>> key_indices, raft::host_span<size_t const> local_frontier_sample_offsets, size_t K)#
template<typename GraphViewType, typename VertexIterator>
rmm::device_uvector<typename GraphViewType::edge_type> convert_to_unmasked_local_nbr_idx(raft::handle_t const &handle, GraphViewType const &graph_view, VertexIterator aggregate_local_frontier_major_first, rmm::device_uvector<typename GraphViewType::edge_type> &&local_nbr_indices, std::optional<raft::device_span<size_t const>> key_indices, raft::host_span<size_t const> local_frontier_sample_offsets, raft::host_span<size_t const> local_frontier_offsets, size_t K)#
template<typename GraphViewType, typename KeyIterator>
std::tuple<rmm::device_uvector<typename GraphViewType::edge_type>, std::optional<rmm::device_uvector<size_t>>, std::vector<size_t>> homogeneous_uniform_sample_and_compute_local_nbr_indices(raft::handle_t const &handle, GraphViewType const &graph_view, KeyIterator aggregate_local_frontier_key_first, raft::host_span<size_t const> local_frontier_offsets, raft::random::RngState &rng_state, size_t K, bool with_replacement)#
template<typename GraphViewType, typename KeyIterator, typename EdgeTypeInputWrapper>
std::tuple<rmm::device_uvector<typename GraphViewType::edge_type>, std::optional<rmm::device_uvector<size_t>>, std::vector<size_t>> heterogeneous_uniform_sample_and_compute_local_nbr_indices(raft::handle_t const &handle, GraphViewType const &graph_view, KeyIterator aggregate_local_frontier_key_first, EdgeTypeInputWrapper edge_type_input, raft::host_span<size_t const> local_frontier_offsets, raft::random::RngState &rng_state, raft::host_span<size_t const> Ks, bool with_replacement)#
template<typename GraphViewType, typename KeyIterator, typename EdgeSrcValueInputWrapper, typename EdgeDstValueInputWrapper, typename EdgeValueInputWrapper, typename BiasEdgeOp>
std::tuple<rmm::device_uvector<typename GraphViewType::edge_type>, std::optional<rmm::device_uvector<size_t>>, std::vector<size_t>> homogeneous_biased_sample_and_compute_local_nbr_indices(raft::handle_t const &handle, GraphViewType const &graph_view, KeyIterator aggregate_local_frontier_key_first, EdgeSrcValueInputWrapper edge_src_value_input, EdgeDstValueInputWrapper edge_dst_value_input, EdgeValueInputWrapper edge_value_input, BiasEdgeOp bias_e_op, raft::host_span<size_t const> local_frontier_offsets, raft::random::RngState &rng_state, size_t K, bool with_replacement, bool do_expensive_check)#
template<typename GraphViewType, typename KeyIterator, typename EdgeSrcValueInputWrapper, typename EdgeDstValueInputWrapper, typename EdgeValueInputWrapper, typename BiasEdgeOp, typename EdgeTypeInputWrapper>
std::tuple<rmm::device_uvector<typename GraphViewType::edge_type>, std::optional<rmm::device_uvector<size_t>>, std::vector<size_t>> heterogeneous_biased_sample_and_compute_local_nbr_indices(raft::handle_t const &handle, GraphViewType const &graph_view, KeyIterator aggregate_local_frontier_key_first, EdgeSrcValueInputWrapper edge_src_value_input, EdgeDstValueInputWrapper edge_dst_value_input, EdgeValueInputWrapper edge_value_input, BiasEdgeOp bias_e_op, EdgeTypeInputWrapper edge_type_input, raft::host_span<size_t const> local_frontier_offsets, raft::random::RngState &rng_state, raft::host_span<size_t const> Ks, bool with_replacement, bool do_expensive_check)#
template<typename key_t, typename GraphViewType, typename EdgePartitionSrcValueInputWrapper, typename EdgePartitionDstValueInputWrapper, typename EdgePartitionEdgeValueInputWrapper, typename EdgeOp, typename ValueIterator> __device__ void transform_v_frontier_e_update_buffer_element (edge_partition_device_view_t< typename GraphViewType::vertex_type, typename GraphViewType::edge_type, GraphViewType::is_multi_gpu > &edge_partition, key_t key, typename GraphViewType::vertex_type major_offset, typename GraphViewType::vertex_type minor, typename GraphViewType::edge_type edge_offset, EdgePartitionSrcValueInputWrapper edge_partition_src_value_input, EdgePartitionDstValueInputWrapper edge_partition_dst_value_input, EdgePartitionEdgeValueInputWrapper edge_partition_e_value_input, EdgeOp e_op, ValueIterator value_iter)
template<bool hypersparse, typename GraphViewType, typename KeyIterator, typename IndexIterator, typename EdgePartitionSrcValueInputWrapper, typename EdgePartitionDstValueInputWrapper, typename EdgePartitionEdgeValueInputWrapper, typename EdgePartitionEdgeMaskWrapper, typename EdgeOp, typename ValueIterator> static __global__ void transform_v_frontier_e_hypersparse_or_low_degree (edge_partition_device_view_t< typename GraphViewType::vertex_type, typename GraphViewType::edge_type, GraphViewType::is_multi_gpu > edge_partition, KeyIterator edge_partition_frontier_key_first, IndexIterator edge_partition_frontier_key_index_first, IndexIterator edge_partition_frontier_key_index_last, EdgePartitionSrcValueInputWrapper edge_partition_src_value_input, EdgePartitionDstValueInputWrapper edge_partition_dst_value_input, EdgePartitionEdgeValueInputWrapper edge_partition_e_value_input, EdgePartitionEdgeMaskWrapper edge_partition_e_mask, raft::device_span< size_t const > edge_partition_frontier_local_degree_offsets, EdgeOp e_op, ValueIterator value_first)
template<typename GraphViewType, typename KeyIterator, typename IndexIterator, typename EdgePartitionSrcValueInputWrapper, typename EdgePartitionDstValueInputWrapper, typename EdgePartitionEdgeValueInputWrapper, typename EdgePartitionEdgeMaskWrapper, typename EdgeOp, typename ValueIterator> static __global__ void transform_v_frontier_e_mid_degree (edge_partition_device_view_t< typename GraphViewType::vertex_type, typename GraphViewType::edge_type, GraphViewType::is_multi_gpu > edge_partition, KeyIterator edge_partition_frontier_key_first, IndexIterator edge_partition_frontier_key_index_first, IndexIterator edge_partition_frontier_key_index_last, EdgePartitionSrcValueInputWrapper edge_partition_src_value_input, EdgePartitionDstValueInputWrapper edge_partition_dst_value_input, EdgePartitionEdgeValueInputWrapper edge_partition_e_value_input, EdgePartitionEdgeMaskWrapper edge_partition_e_mask, raft::device_span< size_t const > edge_partition_frontier_local_degree_offsets, EdgeOp e_op, ValueIterator value_first)
template<typename GraphViewType, typename KeyIterator, typename IndexIterator, typename EdgePartitionSrcValueInputWrapper, typename EdgePartitionDstValueInputWrapper, typename EdgePartitionEdgeValueInputWrapper, typename EdgePartitionEdgeMaskWrapper, typename EdgeOp, typename ValueIterator> static __global__ void transform_v_frontier_e_high_degree (edge_partition_device_view_t< typename GraphViewType::vertex_type, typename GraphViewType::edge_type, GraphViewType::is_multi_gpu > edge_partition, KeyIterator edge_partition_frontier_key_first, IndexIterator edge_partition_frontier_key_index_first, IndexIterator edge_partition_frontier_key_index_last, EdgePartitionSrcValueInputWrapper edge_partition_src_value_input, EdgePartitionDstValueInputWrapper edge_partition_dst_value_input, EdgePartitionEdgeValueInputWrapper edge_partition_e_value_input, EdgePartitionEdgeMaskWrapper edge_partition_e_mask, raft::device_span< size_t const > edge_partition_frontier_local_degree_offsets, EdgeOp e_op, ValueIterator value_first)
template<typename GraphViewType, typename KeyIterator, typename EdgeSrcValueInputWrapper, typename EdgeDstValueInputWrapper, typename EdgeValueInputWrapper, typename EdgeOp>
auto transform_v_frontier_e(raft::handle_t const &handle, GraphViewType const &graph_view, KeyIterator aggregate_local_frontier_key_first, EdgeSrcValueInputWrapper edge_src_value_input, EdgeDstValueInputWrapper edge_dst_value_input, EdgeValueInputWrapper edge_value_input, EdgeOp e_op, raft::host_span<size_t const> local_frontier_offsets)#
template<typename GraphViewType, typename EdgePropertyOutputWrapper, typename T>
void fill_edge_property(raft::handle_t const &handle, GraphViewType const &graph_view, EdgePropertyOutputWrapper edge_property_output, T input)#
template<typename Iterator, typename T> __device__ std::enable_if_t< std::is_same_v< T, bool >, void > fill_thrust_tuple_element (Iterator iter, size_t offset, T value)
template<typename Iterator, typename T> __device__ std::enable_if_t<!std::is_same_v< T, bool >, void > fill_thrust_tuple_element (Iterator iter, size_t offset, T value)
template<typename Iterator, typename T, std::size_t... Is> __device__ void fill_thrust_tuple (Iterator iter, size_t offset, T value, std::index_sequence< Is... >)
template<typename Iterator, typename T> __device__ void fill_scalar_or_thrust_tuple (Iterator iter, size_t offset, T value)
template<typename GraphViewType, typename EdgeMajorPropertyOutputWrapper, typename T>
void fill_edge_major_property(raft::handle_t const &handle, GraphViewType const &graph_view, EdgeMajorPropertyOutputWrapper edge_major_property_output, T input)#
template<typename GraphViewType, typename VertexIterator, typename EdgeMajorPropertyOutputWrapper, typename T>
void fill_edge_major_property(raft::handle_t const &handle, GraphViewType const &graph_view, VertexIterator sorted_unique_vertex_first, VertexIterator sorted_unique_vertex_last, EdgeMajorPropertyOutputWrapper edge_major_property_output, T input)#
template<typename GraphViewType, typename EdgeMinorPropertyOutputWrapper, typename T>
void fill_edge_minor_property(raft::handle_t const &handle, GraphViewType const &graph_view, EdgeMinorPropertyOutputWrapper edge_minor_property_output, T input)#
template<typename GraphViewType, typename VertexIterator, typename EdgeMinorPropertyOutputWrapper, typename T>
void fill_edge_minor_property(raft::handle_t const &handle, GraphViewType const &graph_view, VertexIterator sorted_unique_vertex_first, VertexIterator sorted_unique_vertex_last, EdgeMinorPropertyOutputWrapper edge_minor_property_output, T input)#
template<bool incoming, typename GraphViewType, typename KeyBucketType, typename BiasEdgeSrcValueInputWrapper, typename BiasEdgeDstValueInputWrapper, typename BiasEdgeValueInputWrapper, typename BiasEdgeOp, typename EdgeSrcValueInputWrapper, typename EdgeDstValueInputWrapper, typename EdgeValueInputWrapper, typename EdgeOp, typename EdgeTypeInputWrapper, typename T>
std::tuple<std::optional<rmm::device_uvector<size_t>>, dataframe_buffer_type_t<T>> per_v_random_select_transform_e(raft::handle_t const &handle, GraphViewType const &graph_view, KeyBucketType const &key_list, BiasEdgeSrcValueInputWrapper bias_edge_src_value_input, BiasEdgeDstValueInputWrapper bias_edge_dst_value_input, BiasEdgeValueInputWrapper bias_edge_value_input, BiasEdgeOp bias_e_op, EdgeSrcValueInputWrapper edge_src_value_input, EdgeDstValueInputWrapper edge_dst_value_input, EdgeValueInputWrapper edge_value_input, EdgeOp e_op, EdgeTypeInputWrapper edge_type_input, raft::random::RngState &rng_state, raft::host_span<size_t const> Ks, bool with_replacement, std::optional<T> invalid_value, bool do_expensive_check)#
template<bool check_edge_mask, typename GraphViewType, typename EdgePartitionSrcValueInputWrapper, typename EdgePartitionDstValueInputWrapper, typename EdgePartitionEdgeValueInputWrapper, typename EdgePartitionEdgeMaskWrapper, typename EdgePartitionEdgeValueOutputWrapper, typename EdgeOp> static __global__ void transform_e_packed_bool (edge_partition_device_view_t< typename GraphViewType::vertex_type, typename GraphViewType::edge_type, GraphViewType::is_multi_gpu > edge_partition, EdgePartitionSrcValueInputWrapper edge_partition_src_value_input, EdgePartitionDstValueInputWrapper edge_partition_dst_value_input, EdgePartitionEdgeValueInputWrapper edge_partition_e_value_input, EdgePartitionEdgeMaskWrapper edge_partition_e_mask, EdgePartitionEdgeValueOutputWrapper edge_partition_e_value_output, EdgeOp e_op)
template<typename vertex_t, typename ValueBuffer>
std::tuple<rmm::device_uvector<vertex_t>, ValueBuffer> sort_and_reduce_by_vertices(raft::handle_t const &handle, rmm::device_uvector<vertex_t> &&vertices, ValueBuffer &&value_buffer)#
template<typename GraphViewType, typename EdgePartitionSrcValueInputWrapper, typename EdgePartitionDstValueInputWrapper, typename EdgePartitionEdgeValueInputWrapper, typename EdgePartitionEdgeMaskWrapper, typename ResultIterator, typename EdgeOp> static __global__ void transform_reduce_e_hypersparse (edge_partition_device_view_t< typename GraphViewType::vertex_type, typename GraphViewType::edge_type, GraphViewType::is_multi_gpu > edge_partition, EdgePartitionSrcValueInputWrapper edge_partition_src_value_input, EdgePartitionDstValueInputWrapper edge_partition_dst_value_input, EdgePartitionEdgeValueInputWrapper edge_partition_e_value_input, cuda::std::optional< EdgePartitionEdgeMaskWrapper > edge_partition_e_mask, ResultIterator result_iter, EdgeOp e_op)
template<typename GraphViewType, typename EdgePartitionSrcValueInputWrapper, typename EdgePartitionDstValueInputWrapper, typename EdgePartitionEdgeValueInputWrapper, typename EdgePartitionEdgeMaskWrapper, typename ResultIterator, typename EdgeOp> static __global__ void transform_reduce_e_low_degree (edge_partition_device_view_t< typename GraphViewType::vertex_type, typename GraphViewType::edge_type, GraphViewType::is_multi_gpu > edge_partition, typename GraphViewType::vertex_type major_range_first, typename GraphViewType::vertex_type major_range_last, EdgePartitionSrcValueInputWrapper edge_partition_src_value_input, EdgePartitionDstValueInputWrapper edge_partition_dst_value_input, EdgePartitionEdgeValueInputWrapper edge_partition_e_value_input, cuda::std::optional< EdgePartitionEdgeMaskWrapper > edge_partition_e_mask, ResultIterator result_iter, EdgeOp e_op)
template<typename GraphViewType, typename EdgePartitionSrcValueInputWrapper, typename EdgePartitionDstValueInputWrapper, typename EdgePartitionEdgeValueInputWrapper, typename EdgePartitionEdgeMaskWrapper, typename ResultIterator, typename EdgeOp> static __global__ void transform_reduce_e_mid_degree (edge_partition_device_view_t< typename GraphViewType::vertex_type, typename GraphViewType::edge_type, GraphViewType::is_multi_gpu > edge_partition, typename GraphViewType::vertex_type major_range_first, typename GraphViewType::vertex_type major_range_last, EdgePartitionSrcValueInputWrapper edge_partition_src_value_input, EdgePartitionDstValueInputWrapper edge_partition_dst_value_input, EdgePartitionEdgeValueInputWrapper edge_partition_e_value_input, cuda::std::optional< EdgePartitionEdgeMaskWrapper > edge_partition_e_mask, ResultIterator result_iter, EdgeOp e_op)
template<typename GraphViewType, typename EdgePartitionSrcValueInputWrapper, typename EdgePartitionDstValueInputWrapper, typename EdgePartitionEdgeValueInputWrapper, typename EdgePartitionEdgeMaskWrapper, typename ResultIterator, typename EdgeOp> static __global__ void transform_reduce_e_high_degree (edge_partition_device_view_t< typename GraphViewType::vertex_type, typename GraphViewType::edge_type, GraphViewType::is_multi_gpu > edge_partition, typename GraphViewType::vertex_type major_range_first, typename GraphViewType::vertex_type major_range_last, EdgePartitionSrcValueInputWrapper edge_partition_src_value_input, EdgePartitionDstValueInputWrapper edge_partition_dst_value_input, EdgePartitionEdgeValueInputWrapper edge_partition_e_value_input, cuda::std::optional< EdgePartitionEdgeMaskWrapper > edge_partition_e_mask, ResultIterator result_iter, EdgeOp e_op)
template<bool edge_partition_src_key, typename GraphViewType, typename EdgePartitionSrcValueInputWrapper, typename EdgePartitionDstValueInputWrapper, typename EdgePartitionEdgeValueInputWrapper, typename EdgePartitionSrcDstKeyInputWrapper, typename EdgeOp, typename ValueIterator> __device__ void transform_reduce_e_by_src_dst_key_update_buffer_element (edge_partition_device_view_t< typename GraphViewType::vertex_type, typename GraphViewType::edge_type, GraphViewType::is_multi_gpu > &edge_partition, typename GraphViewType::vertex_type major, typename GraphViewType::vertex_type minor, typename GraphViewType::edge_type edge_offset, EdgePartitionSrcValueInputWrapper edge_partition_src_value_input, EdgePartitionDstValueInputWrapper edge_partition_dst_value_input, EdgePartitionEdgeValueInputWrapper edge_partition_e_value_input, EdgePartitionSrcDstKeyInputWrapper edge_partition_src_dst_key_input, EdgeOp e_op, typename GraphViewType::vertex_type *key, ValueIterator value)
template<bool edge_partition_src_key, typename GraphViewType, typename EdgePartitionSrcValueInputWrapper, typename EdgePartitionDstValueInputWrapper, typename EdgePartitionEdgeValueInputWrapper, typename EdgePartitionSrcDstKeyInputWrapper, typename EdgePartitionEdgeMaskWrapper, typename EdgeOp, typename ValueIterator> static __global__ void transform_reduce_by_src_dst_key_hypersparse (edge_partition_device_view_t< typename GraphViewType::vertex_type, typename GraphViewType::edge_type, GraphViewType::is_multi_gpu > edge_partition, EdgePartitionSrcValueInputWrapper edge_partition_src_value_input, EdgePartitionDstValueInputWrapper edge_partition_dst_value_input, EdgePartitionEdgeValueInputWrapper edge_partition_e_value_input, EdgePartitionSrcDstKeyInputWrapper edge_partition_src_dst_key_input, EdgePartitionEdgeMaskWrapper edge_partition_e_mask, cuda::std::optional< raft::device_span< typename GraphViewType::edge_type const > > edge_offsets_with_mask, EdgeOp e_op, typename GraphViewType::vertex_type *keys, ValueIterator value_iter)
template<bool edge_partition_src_key, typename GraphViewType, typename EdgePartitionSrcValueInputWrapper, typename EdgePartitionDstValueInputWrapper, typename EdgePartitionEdgeValueInputWrapper, typename EdgePartitionSrcDstKeyInputWrapper, typename EdgePartitionEdgeMaskWrapper, typename EdgeOp, typename ValueIterator> static __global__ void transform_reduce_by_src_dst_key_low_degree (edge_partition_device_view_t< typename GraphViewType::vertex_type, typename GraphViewType::edge_type, GraphViewType::is_multi_gpu > edge_partition, typename GraphViewType::vertex_type major_range_first, typename GraphViewType::vertex_type major_range_last, EdgePartitionSrcValueInputWrapper edge_partition_src_value_input, EdgePartitionDstValueInputWrapper edge_partition_dst_value_input, EdgePartitionEdgeValueInputWrapper edge_partition_e_value_input, EdgePartitionSrcDstKeyInputWrapper edge_partition_src_dst_key_input, EdgePartitionEdgeMaskWrapper edge_partition_e_mask, cuda::std::optional< raft::device_span< typename GraphViewType::edge_type const > > edge_offsets_with_mask, EdgeOp e_op, typename GraphViewType::vertex_type *keys, ValueIterator value_iter)
template<bool edge_partition_src_key, typename GraphViewType, typename EdgePartitionSrcValueInputWrapper, typename EdgePartitionDstValueInputWrapper, typename EdgePartitionEdgeValueInputWrapper, typename EdgePartitionSrcDstKeyInputWrapper, typename EdgePartitionEdgeMaskWrapper, typename EdgeOp, typename ValueIterator> static __global__ void transform_reduce_by_src_dst_key_mid_degree (edge_partition_device_view_t< typename GraphViewType::vertex_type, typename GraphViewType::edge_type, GraphViewType::is_multi_gpu > edge_partition, typename GraphViewType::vertex_type major_range_first, typename GraphViewType::vertex_type major_range_last, EdgePartitionSrcValueInputWrapper edge_partition_src_value_input, EdgePartitionDstValueInputWrapper edge_partition_dst_value_input, EdgePartitionEdgeValueInputWrapper edge_partition_e_value_input, EdgePartitionSrcDstKeyInputWrapper edge_partition_src_dst_key_input, EdgePartitionEdgeMaskWrapper edge_partition_e_mask, cuda::std::optional< raft::device_span< typename GraphViewType::edge_type const > > edge_offsets_with_mask, EdgeOp e_op, typename GraphViewType::vertex_type *keys, ValueIterator value_iter)
template<bool edge_partition_src_key, typename GraphViewType, typename EdgePartitionSrcValueInputWrapper, typename EdgePartitionDstValueInputWrapper, typename EdgePartitionEdgeValueInputWrapper, typename EdgePartitionSrcDstKeyInputWrapper, typename EdgePartitionEdgeMaskWrapper, typename EdgeOp, typename ValueIterator> static __global__ void transform_reduce_by_src_dst_key_high_degree (edge_partition_device_view_t< typename GraphViewType::vertex_type, typename GraphViewType::edge_type, GraphViewType::is_multi_gpu > edge_partition, typename GraphViewType::vertex_type major_range_first, typename GraphViewType::vertex_type major_range_last, EdgePartitionSrcValueInputWrapper edge_partition_src_value_input, EdgePartitionDstValueInputWrapper edge_partition_dst_value_input, EdgePartitionEdgeValueInputWrapper edge_partition_e_value_input, EdgePartitionSrcDstKeyInputWrapper edge_partition_src_dst_key_input, EdgePartitionEdgeMaskWrapper edge_partition_e_mask, cuda::std::optional< raft::device_span< typename GraphViewType::edge_type const > > edge_offsets_with_mask, EdgeOp e_op, typename GraphViewType::vertex_type *keys, ValueIterator value_iter)
template<typename vertex_t, typename value_t, typename BufferType, typename ReduceOp>
std::tuple<rmm::device_uvector<vertex_t>, BufferType> reduce_to_unique_kv_pairs(rmm::device_uvector<vertex_t> &&keys, BufferType &&value_buffer, ReduceOp reduce_op, cudaStream_t stream)#
template<bool edge_src_key, typename GraphViewType, typename EdgeSrcValueInputWrapper, typename EdgeDstValueInputWrapper, typename EdgeValueInputWrapper, typename EdgeSrcDstKeyInputWrapper, typename EdgeOp, typename ReduceOp, typename T>
std::tuple<rmm::device_uvector<typename GraphViewType::vertex_type>, decltype(allocate_dataframe_buffer<T>(0, cudaStream_t{nullptr}))> transform_reduce_e_by_src_dst_key(raft::handle_t const &handle, GraphViewType const &graph_view, EdgeSrcValueInputWrapper edge_src_value_input, EdgeDstValueInputWrapper edge_dst_value_input, EdgeValueInputWrapper edge_value_input, EdgeSrcDstKeyInputWrapper edge_src_dst_key_input, EdgeOp e_op, T init, ReduceOp reduce_op)#
template<typename priority_t, typename vertex_t, typename payload_t>
std::tuple<rmm::device_uvector<vertex_t>, optional_dataframe_buffer_type_t<payload_t>> filter_buffer_elements(raft::handle_t const &handle, rmm::device_uvector<vertex_t> &&unique_v_buffer, optional_dataframe_buffer_type_t<payload_t> &&payload_buffer, raft::device_span<vertex_t const> vertex_partition_range_offsets, vertex_t allreduce_count_per_rank, int subgroup_size)#
template<typename input_key_t, typename key_t, typename payload_t, typename ReduceOp>
std::tuple<dataframe_buffer_type_t<key_t>, optional_dataframe_buffer_type_t<payload_t>> sort_and_reduce_buffer_elements(raft::handle_t const &handle, dataframe_buffer_type_t<input_key_t> &&key_buffer, optional_dataframe_buffer_type_t<payload_t> &&payload_buffer, ReduceOp reduce_op, std::conditional_t<std::is_integral_v<key_t>, std::tuple<key_t, key_t>, std::byte> vertex_range, std::optional<input_key_t> invalid_key)#
template<typename GraphViewType, typename KeyBucketType, typename EdgeSrcValueInputWrapper, typename EdgeDstValueInputWrapper, typename EdgeValueInputWrapper, typename EdgeOp, typename ReduceOp, typename PredOp>
std::conditional_t<!std::is_same_v<typename ReduceOp::value_type, void>, std::tuple<dataframe_buffer_type_t<typename KeyBucketType::key_type>, detail::optional_dataframe_buffer_type_t<typename ReduceOp::value_type>>, dataframe_buffer_type_t<typename KeyBucketType::key_type>> transform_reduce_if_v_frontier_outgoing_e_by_dst(raft::handle_t const &handle, GraphViewType const &graph_view, KeyBucketType const &frontier, EdgeSrcValueInputWrapper edge_src_value_input, EdgeDstValueInputWrapper edge_dst_value_input, EdgeValueInputWrapper edge_value_input, EdgeOp e_op, ReduceOp reduce_op, PredOp pred_op, bool do_expensive_check = false)#
template<typename BoolInputIterator, typename PackedBoolOutputIterator>
void pack_bools(raft::handle_t const &handle, BoolInputIterator input_first, BoolInputIterator input_last, PackedBoolOutputIterator output_first)#
template<typename BoolInputIterator, typename PackedBoolOutputIterator>
void pack_unaligned_bools(raft::handle_t const &handle, BoolInputIterator input_first, BoolInputIterator input_last, PackedBoolOutputIterator output_first, size_t intraword_start_offset)#
template<typename GraphViewType, typename VertexPropertyInputIterator, typename EdgeMajorPropertyOutputWrapper>
void update_edge_major_property(raft::handle_t const &handle, GraphViewType const &graph_view, VertexPropertyInputIterator vertex_property_input_first, EdgeMajorPropertyOutputWrapper edge_major_property_output)#
template<typename GraphViewType, typename VertexIterator, typename VertexPropertyInputIterator, typename EdgeMajorPropertyOutputWrapper>
void update_edge_major_property(raft::handle_t const &handle, GraphViewType const &graph_view, VertexIterator sorted_unique_vertex_first, VertexIterator sorted_unique_vertex_last, VertexPropertyInputIterator vertex_property_input_first, EdgeMajorPropertyOutputWrapper edge_major_property_output)#
template<typename GraphViewType, typename VertexPropertyInputIterator, typename EdgeMinorPropertyOutputWrapper>
void update_edge_minor_property(raft::handle_t const &handle, GraphViewType const &graph_view, VertexPropertyInputIterator vertex_property_input_first, EdgeMinorPropertyOutputWrapper edge_minor_property_output)#
template<typename GraphViewType, typename VertexIterator, typename VertexPropertyInputIterator, typename EdgeMinorPropertyOutputWrapper>
void update_edge_minor_property(raft::handle_t const &handle, GraphViewType const &graph_view, VertexIterator sorted_unique_vertex_first, VertexIterator sorted_unique_vertex_last, VertexPropertyInputIterator vertex_property_input_first, EdgeMinorPropertyOutputWrapper edge_minor_property_output)#
template<typename vertex_t, typename edge_t, typename bias_t, bool multi_gpu>
std::tuple<size_t, size_t> check_edge_bias_values(raft::handle_t const &handle, graph_view_t<vertex_t, edge_t, false, multi_gpu> const &graph_view, edge_property_view_t<edge_t, bias_t const*> edge_bias_view)#

检查边偏置值。

计算负边偏置值的数量以及外出边偏置值总和超过 std::numeric_limits<bias_t>::max() 的顶点的数量。

模板参数
  • vertex_t – 顶点标识符的类型。需要是整数类型。

  • edge_t – 边标识符的类型。需要是整数类型。

  • bias_t – 边偏置值的类型。需要是浮点类型。

  • multi_gpu – 指示模板实例化是针对单 GPU (false) 还是多 GPU (true) 的标志。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 用于生成邻居采样的图视图对象。

  • edge_weight_view – 包含 graph_view 的边偏置值的视图对象。

template std::tuple< size_t, size_t > check_edge_bias_values (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, edge_property_view_t< int32_t, float const * > edge_bias_view)
template std::tuple< size_t, size_t > check_edge_bias_values (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, edge_property_view_t< int32_t, double const * > edge_bias_view)
template std::tuple< size_t, size_t > check_edge_bias_values (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, edge_property_view_t< int64_t, float const * > edge_bias_view)
template std::tuple< size_t, size_t > check_edge_bias_values (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, edge_property_view_t< int64_t, double const * > edge_bias_view)
template std::tuple< size_t, size_t > check_edge_bias_values (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, edge_property_view_t< int32_t, float const * > edge_bias_view)
template std::tuple< size_t, size_t > check_edge_bias_values (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, edge_property_view_t< int32_t, double const * > edge_bias_view)
template std::tuple< size_t, size_t > check_edge_bias_values (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, edge_property_view_t< int64_t, float const * > edge_bias_view)
template std::tuple< size_t, size_t > check_edge_bias_values (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, edge_property_view_t< int64_t, double const * > edge_bias_view)
rmm::device_uvector<int32_t> convert_starting_vertex_label_offsets_to_labels(raft::handle_t const &handle, raft::device_span<size_t const> starting_vertex_label_offsets)#

将起始顶点偏移转换为起始顶点标签。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • starting_vertex_label_offsets – 定义每个顶点标签起始位置的偏移数组。

返回

包含每个起始顶点标签的设备向量。

template<typename label_t>
rmm::device_uvector<int32_t> flatten_label_map(raft::handle_t const &handle, std::tuple<raft::device_span<label_t const>, raft::device_span<int32_t const>> label_to_output_comm_rank)#

将旧版 label_to_output_comm_rank 展平为新结构。

旧版结构支持任意标签,新结构是标签从 [0,n) 的密集映射。

模板参数

label_t – 标签的类型名。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • label_to_output_comm_rank – 包含标签 ID 和每个标签应分配到的通信等级的元组。

返回

包含到 comm_rank 映射的设备向量。条目 i 将是标签 i 的 comm_rank 目标。

template rmm::device_uvector< int32_t > flatten_label_map (raft::handle_t const &handle, std::tuple< raft::device_span< int32_t const >, raft::device_span< int32_t const > > label_to_output_comm_rank)
template<bool has_weight, bool has_edge_id, bool has_edge_type, typename label_t, typename vertex_t, typename edge_t, typename weight_t, typename edge_type_t, typename tag_t, bool multi_gpu>
std::tuple<rmm::device_uvector<vertex_t>, rmm::device_uvector<vertex_t>, std::optional<rmm::device_uvector<weight_t>>, std::optional<rmm::device_uvector<edge_t>>, std::optional<rmm::device_uvector<edge_type_t>>, std::optional<rmm::device_uvector<label_t>>> gather_one_hop_edgelist(raft::handle_t const &handle, graph_view_t<vertex_t, edge_t, false, multi_gpu> const &graph_view, std::optional<edge_property_view_t<edge_t, weight_t const*>> edge_weight_view, std::optional<edge_property_view_t<edge_t, edge_t const*>> edge_id_view, std::optional<edge_property_view_t<edge_t, edge_type_t const*>> edge_type_view, cugraph::vertex_frontier_t<vertex_t, tag_t, multi_gpu, false> const &vertex_frontier, std::optional<raft::host_span<uint8_t const>> gather_flags, bool do_expensive_check)#
template<typename vertex_t, typename edge_t, typename weight_t, typename edge_type_t, typename label_t, bool multi_gpu>
std::tuple<rmm::device_uvector<vertex_t>, rmm::device_uvector<vertex_t>, std::optional<rmm::device_uvector<weight_t>>, std::optional<rmm::device_uvector<edge_t>>, std::optional<rmm::device_uvector<edge_type_t>>, std::optional<rmm::device_uvector<label_t>>> gather_one_hop_edgelist(raft::handle_t const &handle, graph_view_t<vertex_t, edge_t, false, multi_gpu> const &graph_view, std::optional<edge_property_view_t<edge_t, weight_t const*>> edge_weight_view, std::optional<edge_property_view_t<edge_t, edge_t const*>> edge_id_view, std::optional<edge_property_view_t<edge_t, edge_type_t const*>> edge_type_view, raft::device_span<vertex_t const> active_majors, std::optional<raft::device_span<label_t const>> active_major_labels, std::optional<raft::host_span<uint8_t const>> gather_flags, bool do_expensive_check = false)#

为指定的顶点收集边列表。

收集当前 GPU 上邻接列表中存在的所有边。

模板参数
  • vertex_t – 顶点标识符的类型。需要是整数类型。

  • edge_t – 边标识符的类型。需要是整数类型。

  • weight_t – 边权重的类型。需要是浮点类型。

  • edge_type_t – 边类型的类型。需要是一个整数类型。

  • label_t – 标签的类型。需要是一个整数类型。

  • multi_gpu – 指示模板实例化是针对单 GPU (false) 还是多 GPU (true) 的标志。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 用于生成邻居采样的图视图对象。

  • edge_weight_view – 可选的视图对象,用于保存 graph_view 的边权重。

  • edge_id_view – 可选的视图对象,包含 graph_view 的边 ID。

  • edge_type_view – 可选的视图对象,包含 graph_view 的边类型。

  • active_majors – 设备向量,包含列通信器中的 GPU 处理的所有顶点 ID。

  • active_major_labels – 可选的设备向量,包含每个设备向量的标签。

  • gather_flags – 可选的主机 span,指示是否为每种边类型收集边。gather_flags.has_value() 应与 edge_type_view.has_value() 一致。

返回

一个设备向量的元组,包含主顶点、次顶点、可选权重、可选边 ID、可选边类型和可选标签。

template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > > > gather_one_hop_edgelist (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_id_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_edge_type_view, raft::device_span< int32_t const > active_majors, std::optional< raft::device_span< int32_t const > > active_major_labels, std::optional< raft::host_span< uint8_t const > > gather_flags, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > > > gather_one_hop_edgelist (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_id_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_edge_type_view, raft::device_span< int32_t const > active_majors, std::optional< raft::device_span< int32_t const > > active_major_labels, std::optional< raft::host_span< uint8_t const > > gather_flags, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > > > gather_one_hop_edgelist (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, std::optional< edge_property_view_t< int64_t, int64_t const * > > edge_id_view, std::optional< edge_property_view_t< int64_t, int32_t const * > > edge_edge_type_view, raft::device_span< int64_t const > active_majors, std::optional< raft::device_span< int32_t const > > active_major_labels, std::optional< raft::host_span< uint8_t const > > gather_flags, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > > > gather_one_hop_edgelist (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, std::optional< edge_property_view_t< int64_t, int64_t const * > > edge_id_view, std::optional< edge_property_view_t< int64_t, int32_t const * > > edge_edge_type_view, raft::device_span< int64_t const > active_majors, std::optional< raft::device_span< int32_t const > > active_major_labels, std::optional< raft::host_span< uint8_t const > > gather_flags, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > > > gather_one_hop_edgelist (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_id_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_edge_type_view, raft::device_span< int32_t const > active_majors, std::optional< raft::device_span< int32_t const > > active_major_labels, std::optional< raft::host_span< uint8_t const > > gather_flags, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > > > gather_one_hop_edgelist (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_id_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_edge_type_view, raft::device_span< int32_t const > active_majors, std::optional< raft::device_span< int32_t const > > active_major_labels, std::optional< raft::host_span< uint8_t const > > gather_flags, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > > > gather_one_hop_edgelist (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, std::optional< edge_property_view_t< int64_t, int64_t const * > > edge_id_view, std::optional< edge_property_view_t< int64_t, int32_t const * > > edge_edge_type_view, raft::device_span< int64_t const > active_majors, std::optional< raft::device_span< int32_t const > > active_major_labels, std::optional< raft::host_span< uint8_t const > > gather_flags, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > > > gather_one_hop_edgelist (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, std::optional< edge_property_view_t< int64_t, int64_t const * > > edge_id_view, std::optional< edge_property_view_t< int64_t, int32_t const * > > edge_edge_type_view, raft::device_span< int64_t const > active_majors, std::optional< raft::device_span< int32_t const > > active_major_labels, std::optional< raft::host_span< uint8_t const > > gather_flags, bool do_expensive_check)
template<typename vertex_t, typename label_t, bool multi_gpu>
std::tuple<rmm::device_uvector<vertex_t>, std::optional<rmm::device_uvector<label_t>>, std::optional<std::tuple<rmm::device_uvector<vertex_t>, std::optional<rmm::device_uvector<label_t>>>>> prepare_next_frontier(raft::handle_t const &handle, raft::device_span<vertex_t const> sampled_src_vertices, std::optional<raft::device_span<label_t const>> sampled_src_vertex_labels, raft::device_span<vertex_t const> sampled_dst_vertices, std::optional<raft::device_span<label_t const>> sampled_dst_vertex_labels, std::optional<std::tuple<rmm::device_uvector<vertex_t>, std::optional<rmm::device_uvector<label_t>>>> &&vertex_used_as_source, raft::host_span<vertex_t const> vertex_partition_range_lasts, prior_sources_behavior_t prior_sources_behavior, bool dedupe_sources, bool do_expensive_check)#

使用跳数 N 的采样结果来填充跳数 N+1 的新前沿。

模板参数
  • vertex_t – 顶点标识符的类型。需要是整数类型。

  • label_t – 标签的类型。需要是一个整数类型。

  • multi_gpu – 指示模板实例化是针对单 GPU (false) 还是多 GPU (true) 的标志。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • sampled_src_vertices – 当前采样的源顶点。

  • sampled_src_vertex_labels – 当前采样顶点的可选标签。

  • sampled_dst_vertices – 下一个前沿的顶点。

  • sampled_dst_vertex_labels – 下一个前沿的可选标签。

  • vertex_used_as_source – 可选。如果指定,则我们希望排除先前已用作源的顶点。这些顶点(和可选标签)将根据 sampled_src_vertices/sampled_src_vertex_labels 的内容进行更新,并且更新将作为返回值的一部分。

  • vertex_partition_range_lasts – 来自图视图的范围结束信息。

  • prior_sources_behavior – 标识在每个跳数中如何处理源。

  • dedupe_sources – 布尔标志,如果为 true,则如果顶点 v 在跳数 X 中以相同的标签多次作为目标出现,它将仅作为下一个跳数的源(对于每个标签)传递一次。默认为 false。

  • do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)。

返回

一个设备向量的元组,包含用于下一个前沿扩展的顶点以及与顶点相关的可选标签,以及 vertex_used_as_sources 的更新值。

template std::tuple< rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< int32_t > >, std::optional< std::tuple< rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< int32_t > > > > > prepare_next_frontier< int32_t, int32_t, true > (raft::handle_t const &handle, raft::device_span< int32_t const > sampled_src_vertices, std::optional< raft::device_span< int32_t const > > sampled_src_vertex_labels, raft::device_span< int32_t const > sampled_dst_vertices, std::optional< raft::device_span< int32_t const > > sampled_dst_vertex_labels, std::optional< std::tuple< rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< int32_t > > > > &&vertex_used_as_source, raft::host_span< int32_t const > vertex_partition_range_lasts, prior_sources_behavior_t prior_sources_behavior, bool dedupe_sources, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< int32_t > >, std::optional< std::tuple< rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< int32_t > > > > > prepare_next_frontier< int64_t, int32_t, true > (raft::handle_t const &handle, raft::device_span< int64_t const > sampled_src_vertices, std::optional< raft::device_span< int32_t const > > sampled_src_vertex_labels, raft::device_span< int64_t const > sampled_dst_vertices, std::optional< raft::device_span< int32_t const > > sampled_dst_vertex_labels, std::optional< std::tuple< rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< int32_t > > > > &&vertex_used_as_source, raft::host_span< int64_t const > vertex_partition_range_lasts, prior_sources_behavior_t prior_sources_behavior, bool dedupe_sources, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< int32_t > >, std::optional< std::tuple< rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< int32_t > > > > > prepare_next_frontier< int32_t, int32_t, false > (raft::handle_t const &handle, raft::device_span< int32_t const > sampled_src_vertices, std::optional< raft::device_span< int32_t const > > sampled_src_vertex_labels, raft::device_span< int32_t const > sampled_dst_vertices, std::optional< raft::device_span< int32_t const > > sampled_dst_vertex_labels, std::optional< std::tuple< rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< int32_t > > > > &&vertex_used_as_source, raft::host_span< int32_t const > vertex_partition_range_lasts, prior_sources_behavior_t prior_sources_behavior, bool dedupe_sources, bool do_expensive_check)
template std::tuple< rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< int32_t > >, std::optional< std::tuple< rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< int32_t > > > > > prepare_next_frontier< int64_t, int32_t, false > (raft::handle_t const &handle, raft::device_span< int64_t const > sampled_src_vertices, std::optional< raft::device_span< int32_t const > > sampled_src_vertex_labels, raft::device_span< int64_t const > sampled_dst_vertices, std::optional< raft::device_span< int32_t const > > sampled_dst_vertex_labels, std::optional< std::tuple< rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< int32_t > > > > &&vertex_used_as_source, raft::host_span< int64_t const > vertex_partition_range_lasts, prior_sources_behavior_t prior_sources_behavior, bool dedupe_sources, bool do_expensive_check)
template<typename vertex_t, typename label_t>
std::tuple<rmm::device_uvector<vertex_t>, std::optional<rmm::device_uvector<label_t>>> remove_visited_vertices_from_frontier(raft::handle_t const &handle, rmm::device_uvector<vertex_t> &&frontier_vertices, std::optional<rmm::device_uvector<label_t>> &&frontier_vertex_labels, raft::device_span<vertex_t const> vertices_used_as_source, std::optional<raft::device_span<label_t const>> vertex_labels_used_as_source)#

从前沿中移除所有已被用作源顶点的顶点。

模板参数
  • vertex_t – 顶点标识符的类型。需要是整数类型。

  • label_t – 标签的类型。需要是一个整数类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • frontier_vertices – 在当前跳中发现的顶点

  • frontier_vertex_labels – 当前跳中发现的顶点的标签

  • vertices_used_as_source – 包含在之前跳中被用作源的所有顶点的设备向量

  • vertex_labels_used_as_source – 包含与在之前跳中用作源顶点的 vertices_used_as_source 相关的顶点标签的设备向量

返回

包含修改后的 `frontier_vertices` 和 `frontier_vertex_labels` 的元组

template std::tuple< rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< int32_t > > > remove_visited_vertices_from_frontier (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&frontier_vertices, std::optional< rmm::device_uvector< int32_t > > &&frontier_vertex_labels, raft::device_span< int32_t const > vertices_used_as_source, std::optional< raft::device_span< int32_t const > > vertex_labels_used_as_source)
template std::tuple< rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< int32_t > > > remove_visited_vertices_from_frontier (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&frontier_vertices, std::optional< rmm::device_uvector< int32_t > > &&frontier_vertex_labels, raft::device_span< int64_t const > vertices_used_as_source, std::optional< raft::device_span< int32_t const > > vertex_labels_used_as_source)
template<bool has_weight, bool has_edge_id, bool has_edge_type, typename vertex_t, typename edge_t, typename weight_t, typename edge_type_t, typename bias_t, bool multi_gpu>
std::tuple<std::optional<rmm::device_uvector<size_t>>, rmm::device_uvector<vertex_t>, rmm::device_uvector<vertex_t>, std::optional<rmm::device_uvector<weight_t>>, std::optional<rmm::device_uvector<edge_t>>, std::optional<rmm::device_uvector<edge_type_t>>> sample_edges_with_edge_values(raft::handle_t const &handle, graph_view_t<vertex_t, edge_t, false, multi_gpu> const &graph_view, key_bucket_t<vertex_t, void, multi_gpu, false> const &key_list, std::optional<edge_property_view_t<edge_t, weight_t const*>> edge_weight_view, std::optional<edge_property_view_t<edge_t, edge_t const*>> edge_id_view, std::optional<edge_property_view_t<edge_t, edge_type_t const*>> edge_type_view, std::optional<edge_property_view_t<edge_t, bias_t const*>> edge_bias_view, raft::random::RngState &rng_state, raft::device_span<vertex_t const> active_majors, raft::host_span<size_t const> Ks, bool with_replacement)#
template<typename vertex_t, typename edge_t, typename weight_t, typename edge_type_t, typename bias_t, typename label_t, bool multi_gpu>
std::tuple<rmm::device_uvector<vertex_t>, rmm::device_uvector<vertex_t>, std::optional<rmm::device_uvector<weight_t>>, std::optional<rmm::device_uvector<edge_t>>, std::optional<rmm::device_uvector<edge_type_t>>, std::optional<rmm::device_uvector<label_t>>> sample_edges(raft::handle_t const &handle, graph_view_t<vertex_t, edge_t, false, multi_gpu> const &graph_view, std::optional<edge_property_view_t<edge_t, weight_t const*>> edge_weight_view, std::optional<edge_property_view_t<edge_t, edge_t const*>> edge_id_view, std::optional<edge_property_view_t<edge_t, edge_type_t const*>> edge_type_view, std::optional<edge_property_view_t<edge_t, bias_t const*>> edge_bias_view, raft::random::RngState &rng_state, raft::device_span<vertex_t const> active_majors, std::optional<raft::device_span<label_t const>> active_major_labels, raft::host_span<size_t const> fan_out, bool with_replacement)#

从指定顶点的邻接列表中随机采样边。

模板参数
  • vertex_t – 顶点标识符的类型。需要是整数类型。

  • edge_t – 边标识符的类型。需要是整数类型。

  • weight_t – 边权重的类型。需要是浮点类型。

  • edge_type_t – 边类型的类型。需要是一个整数类型。

  • label_t – 标签的类型。需要是一个整数类型。

  • multi_gpu – 指示模板实例化是针对单 GPU (false) 还是多 GPU (true) 的标志。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph_view – 用于生成邻居采样的图视图对象。

  • edge_weight_view – 可选的视图对象,用于保存 graph_view 的边权重。

  • edge_id_view – 可选的视图对象,包含 graph_view 的边 ID。

  • edge_type_view – 可选的视图对象,包含 graph_view 的边类型。

  • rng_state – 随机数生成器状态

  • active_majors – 设备向量,包含列通信器中的 GPU 处理的所有顶点 ID。

  • active_major_labels – 可选的设备向量,包含每个设备向量的标签。

  • fan_out – 每种边类型为每个顶点采样的边数量

  • with_replacement – 如果为 true,则进行有放回采样,否则进行无放回采样

  • invalid_vertex_id – 无效顶点使用的值

返回

一个设备向量的元组,包含主顶点、次顶点、可选权重、可选边 ID、可选边类型和可选标签。

template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > > > sample_edges (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_id_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_edge_type_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_bias_view, raft::random::RngState &rng_state, raft::device_span< int32_t const > active_majors, std::optional< raft::device_span< int32_t const > > active_major_labels, raft::host_span< size_t const > Ks, bool with_replacement)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > > > sample_edges (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, true > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_id_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_edge_type_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_bias_view, raft::random::RngState &rng_state, raft::device_span< int32_t const > active_majors, std::optional< raft::device_span< int32_t const > > active_major_labels, raft::host_span< size_t const > Ks, bool with_replacement)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > > > sample_edges (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, std::optional< edge_property_view_t< int64_t, int64_t const * > > edge_id_view, std::optional< edge_property_view_t< int64_t, int32_t const * > > edge_edge_type_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_bias_view, raft::random::RngState &rng_state, raft::device_span< int64_t const > active_majors, std::optional< raft::device_span< int32_t const > > active_major_labels, raft::host_span< size_t const > Ks, bool with_replacement)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > > > sample_edges (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, true > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, std::optional< edge_property_view_t< int64_t, int64_t const * > > edge_id_view, std::optional< edge_property_view_t< int64_t, int32_t const * > > edge_edge_type_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_bias_view, raft::random::RngState &rng_state, raft::device_span< int64_t const > active_majors, std::optional< raft::device_span< int32_t const > > active_major_labels, raft::host_span< size_t const > Ks, bool with_replacement)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > > > sample_edges (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_weight_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_id_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_edge_type_view, std::optional< edge_property_view_t< int32_t, float const * > > edge_bias_view, raft::random::RngState &rng_state, raft::device_span< int32_t const > active_majors, std::optional< raft::device_span< int32_t const > > active_major_labels, raft::host_span< size_t const > Ks, bool with_replacement)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > > > sample_edges (raft::handle_t const &handle, graph_view_t< int32_t, int32_t, false, false > const &graph_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_weight_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_id_view, std::optional< edge_property_view_t< int32_t, int32_t const * > > edge_edge_type_view, std::optional< edge_property_view_t< int32_t, double const * > > edge_bias_view, raft::random::RngState &rng_state, raft::device_span< int32_t const > active_majors, std::optional< raft::device_span< int32_t const > > active_major_labels, raft::host_span< size_t const > Ks, bool with_replacement)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > > > sample_edges (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_weight_view, std::optional< edge_property_view_t< int64_t, int64_t const * > > edge_id_view, std::optional< edge_property_view_t< int64_t, int32_t const * > > edge_edge_type_view, std::optional< edge_property_view_t< int64_t, float const * > > edge_bias_view, raft::random::RngState &rng_state, raft::device_span< int64_t const > active_majors, std::optional< raft::device_span< int32_t const > > active_major_labels, raft::host_span< size_t const > Ks, bool with_replacement)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > > > sample_edges (raft::handle_t const &handle, graph_view_t< int64_t, int64_t, false, false > const &graph_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_weight_view, std::optional< edge_property_view_t< int64_t, int64_t const * > > edge_id_view, std::optional< edge_property_view_t< int64_t, int32_t const * > > edge_edge_type_view, std::optional< edge_property_view_t< int64_t, double const * > > edge_bias_view, raft::random::RngState &rng_state, raft::device_span< int64_t const > active_majors, std::optional< raft::device_span< int32_t const > > active_major_labels, raft::host_span< size_t const > Ks, bool with_replacement)
template<typename vertex_t, typename edge_t, typename weight_t, typename edge_type_t, typename label_t>
std::tuple<rmm::device_uvector<vertex_t>, rmm::device_uvector<vertex_t>, std::optional<rmm::device_uvector<weight_t>>, std::optional<rmm::device_uvector<edge_t>>, std::optional<rmm::device_uvector<edge_type_t>>, std::optional<rmm::device_uvector<int32_t>>, std::optional<rmm::device_uvector<label_t>>> shuffle_sampling_results(raft::handle_t const &handle, rmm::device_uvector<vertex_t> &&majors, rmm::device_uvector<vertex_t> &&minors, std::optional<rmm::device_uvector<weight_t>> &&weights, std::optional<rmm::device_uvector<edge_t>> &&edge_ids, std::optional<rmm::device_uvector<edge_type_t>> &&edge_types, std::optional<rmm::device_uvector<int32_t>> &&hops, std::optional<rmm::device_uvector<label_t>> &&labels, raft::device_span<int32_t const> label_to_output_gpu_mapping)#

根据 label_to_output_gpu_mapping[label[i]] 将采样结果打乱并发送到目标 GPU。

模板参数
  • vertex_t – 顶点标识符的类型。需要是整数类型。

  • edge_t – 边标识符的类型。需要是整数类型。

  • weight_t – 边权重的类型。需要是浮点类型。

  • edge_type_t – 边类型的类型。需要是一个整数类型。

  • label_t – 标签的类型。需要是一个整数类型。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • majors – 主要顶点

  • minors – 次要顶点

  • weights – 可选的边权重

  • edge_ids – 可选的边 ID

  • edge_types – 可选的边类型

  • hops – 可选的指标,表示边是在哪一跳中找到的

  • labels – 与导致此边成为结果一部分的种子关联的标签

  • label_to_output_gpu_mapping – 标识与输出标签关联的 GPU 的映射

返回

包含主要顶点、次要顶点、可选权重、可选边 ID、可选边类型、可选跳数和可选标签的设备向量元组,这些向量在打乱后被发送到指定的输出 GPU

template<typename vertex_t, typename edge_t, typename weight_t, typename edge_type_t, typename label_t>
std::tuple<rmm::device_uvector<vertex_t>, rmm::device_uvector<vertex_t, std::optional<rmm::device_uvector<weight_t>>, std::optional<rmm::device_uvector<edge_t>>, std::optional<rmm::device_uvector<edge_type_t>>, std::optional<rmm::device_uvector<int32_t>>, std::optional<rmm::device_uvector<label_t>>, std::optional<rmm::device_uvector<size_t>>> shuffle_and_organize_output(raft::handle_t const &handle, rmm::device_uvector<vertex_t> &&majors, rmm::device_uvector<vertex_t> &&minors, std::optional<rmm::device_uvector<weight_t>> &&weights, std::optional<rmm::device_uvector<edge_t>> &&edge_ids, std::optional<rmm::device_uvector<edge_type_t>> &&edge_types, std::optional<rmm::device_uvector<int32_t>> &&hops, std::optional<rmm::device_uvector<label_t>> &&labels, std::optional<raft::device_span<int32_t const>> label_to_output_comm_rank)#
template<typename vertex_t, typename weight_t, typename edge_t, typename edge_type_t, typename label_t>
void sort_sampled_tuples(raft::handle_t const &handle, rmm::device_uvector<vertex_t> &majors, rmm::device_uvector<vertex_t> &minors, std::optional<rmm::device_uvector<weight_t>> &weights, std::optional<rmm::device_uvector<edge_t>> &edge_ids, std::optional<rmm::device_uvector<edge_type_t>> &edge_types, std::optional<rmm::device_uvector<int32_t>> &hops, rmm::device_uvector<label_t> &labels)#
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > shuffle_and_organize_output (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&majors, rmm::device_uvector< int32_t > &&minors, std::optional< rmm::device_uvector< float > > &&weights, std::optional< rmm::device_uvector< int32_t > > &&edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edge_types, std::optional< rmm::device_uvector< int32_t > > &&hops, std::optional< rmm::device_uvector< int32_t > > &&labels, std::optional< raft::device_span< int32_t const > > label_to_output_comm_rank)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > shuffle_and_organize_output (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&majors, rmm::device_uvector< int32_t > &&minors, std::optional< rmm::device_uvector< double > > &&weights, std::optional< rmm::device_uvector< int32_t > > &&edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edge_types, std::optional< rmm::device_uvector< int32_t > > &&hops, std::optional< rmm::device_uvector< int32_t > > &&labels, std::optional< raft::device_span< int32_t const > > label_to_output_comm_rank)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > shuffle_and_organize_output (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&majors, rmm::device_uvector< int64_t > &&minors, std::optional< rmm::device_uvector< float > > &&weights, std::optional< rmm::device_uvector< int64_t > > &&edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edge_types, std::optional< rmm::device_uvector< int32_t > > &&hops, std::optional< rmm::device_uvector< int32_t > > &&labels, std::optional< raft::device_span< int32_t const > > label_to_output_comm_rank)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< size_t > > > shuffle_and_organize_output (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&majors, rmm::device_uvector< int64_t > &&minors, std::optional< rmm::device_uvector< double > > &&weights, std::optional< rmm::device_uvector< int64_t > > &&edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edge_types, std::optional< rmm::device_uvector< int32_t > > &&hops, std::optional< rmm::device_uvector< int32_t > > &&labels, std::optional< raft::device_span< int32_t const > > label_to_output_comm_rank)
template<typename vertex_t, typename edge_t, typename weight_t, bool store_transposed, bool multi_gpu>
std::tuple<std::optional<rmm::device_uvector<weight_t>>, std::optional<rmm::device_uvector<weight_t>>> normalize_biases(raft::handle_t const &handle, graph_view_t<vertex_t, edge_t, store_transposed, multi_gpu> const &graph_view, raft::device_span<weight_t const> biases)#
template<typename vertex_t, typename edge_t, typename weight_t, bool store_transposed, bool multi_gpu>
rmm::device_uvector<vertex_t> create_local_samples(raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t<vertex_t, edge_t, store_transposed, multi_gpu> const &graph_view, std::optional<rmm::device_uvector<weight_t>> const &normalized_biases, std::optional<rmm::device_uvector<weight_t>> const &gpu_biases, size_t samples_in_this_batch)#
template<typename vertex_t, typename edge_t, typename weight_t, typename edge_type_t, typename bias_t, typename label_t, bool store_transposed, bool multi_gpu>
std::tuple<rmm::device_uvector<vertex_t>, rmm::device_uvector<vertex_t>, std::optional<rmm::device_uvector<weight_t>>, std::optional<rmm::device_uvector<edge_t>>, std::optional<rmm::device_uvector<edge_type_t>>, std::optional<rmm::device_uvector<int32_t>>, std::optional<rmm::device_uvector<label_t>>, std::optional<rmm::device_uvector<size_t>>> neighbor_sample_impl(raft::handle_t const &handle, raft::random::RngState &rng_state, graph_view_t<vertex_t, edge_t, store_transposed, multi_gpu> const &graph_view, std::optional<edge_property_view_t<edge_t, weight_t const*>> edge_weight_view, std::optional<edge_property_view_t<edge_t, edge_t const*>> edge_id_view, std::optional<edge_property_view_t<edge_t, edge_type_t const*>> edge_type_view, std::optional<edge_property_view_t<edge_t, bias_t const*>> edge_bias_view, raft::device_span<vertex_t const> starting_vertices, std::optional<raft::device_span<label_t const>> starting_vertex_labels, std::optional<raft::device_span<int32_t const>> label_to_output_comm_rank, raft::host_span<int32_t const> fan_out, std::optional<edge_type_t> num_edge_types, bool return_hops, bool with_replacement, prior_sources_behavior_t prior_sources_behavior, bool dedupe_sources, bool do_expensive_check)#
template<typename vertex_t, typename edge_t, typename weight_t, typename selector_t, typename traversal_t = original::horizontal_traversal_t, typename random_engine_t = rrandom_gen_t<vertex_t, edge_t>, typename seeding_policy_t = original::clock_seeding_t<typename random_engine_t::seed_type>, typename index_t = edge_t>
std::tuple<original::device_vec_t<vertex_t>, original::device_vec_t<weight_t>, original::device_vec_t<index_t>, typename random_engine_t::seed_type> random_walks_impl(raft::handle_t const &handle, graph_view_t<vertex_t, edge_t, false, false> const &graph_view, std::optional<edge_property_view_t<edge_t, weight_t const*>> edge_weight_view, original::device_const_vector_view<vertex_t, index_t> &d_v_start, index_t max_depth, selector_t const &selector, bool use_padding = false, seeding_policy_t seeder = original::clock_seeding_t<typename random_engine_t::seed_type>{})#

返回从起始源开始的随机游走 (RW),其中每条路径都有给定的最大长度。单 GPU 专门化。

模板参数
  • graph_t – 图的类型(视图)。

  • traversal_t – 遍历策略。水平(更快但需要更多内存)或垂直。默认为水平。

  • random_engine_t – 用于生成 RW 的随机引擎类型。

  • seeding_policy_t – 随机引擎种子策略:可变或固定(用于可重现性)。默认为可变,依赖于时钟。

  • index_t – 索引类型。默认为 edge_type。

参数
  • handle – RAFT handle 对象,用于封装运行图算法所需的资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)。

  • graph – 用于生成 RW 的图对象。

  • d_v_start – RW 的起始顶点索引的设备(视图)集。number(paths) == d_v_start.size()。

  • max_depth – RW 的最大长度。

  • use_padding – (可选)指定返回是否使用填充格式 (true) 或合并(压缩)格式;使用填充时,输出是顶点路径矩阵和边路径(权重)矩阵;在这种情况下,矩阵按行主序存储;顶点路径矩阵用 num_vertices 值填充,权重矩阵用 0 值填充;

  • seeder – (可选)是提供随机种子机制的对象。默认为使用本地时钟时间作为初始种子。

返回

std::tuple<device_vec_t<vertex_t>, device_vec_t<weight_t>, device_vec_t<index_t>> 填充或合并 RW 路径的三元组;在合并情况下(默认),返回包括每个路径对应的顶点和边权重,以及相应的路径大小。这是为了最小化传递给 Python 层的 DF 数量。这里“合并”的含义是,不同大小的路径的二维数组被表示为一维连续数组。在填充情况下,返回是一个 num_paths x max_depth 的顶点路径矩阵;以及一个 num_paths x (max_depth-1) 的边(权重)路径矩阵,以及一个空的大小数组。注意:如果图是无权重的,边(权重)路径由 weight_t{1} 条目组成;

template<typename vertex_t, typename edge_t, typename weight_t, bool multi_gpu, typename random_selector_t>
std::tuple<rmm::device_uvector<vertex_t>, std::optional<rmm::device_uvector<weight_t>>> random_walk_impl(raft::handle_t const &handle, graph_view_t<vertex_t, edge_t, false, multi_gpu> const &graph_view, std::optional<edge_property_view_t<edge_t, weight_t const*>> edge_weight_view, raft::device_span<vertex_t const> start_vertices, size_t max_length, random_selector_t random_selector)#
template<typename vertex_t, typename edge_t, typename weight_t, bool store_transposed, bool multi_gpu>
std::enable_if_t<multi_gpu, std::tuple<graph_t<vertex_t, edge_t, store_transposed, multi_gpu>, std::optional<edge_property_t<graph_view_t<vertex_t, edge_t, store_transposed, multi_gpu>, weight_t>>, std::optional<rmm::device_uvector<vertex_t>>>> coarsen_graph(raft::handle_t const &handle, graph_view_t<vertex_t, edge_t, store_transposed, multi_gpu> const &graph_view, std::optional<edge_property_view_t<edge_t, weight_t const*>> edge_weight_view, vertex_t const *labels, bool renumber, bool do_expensive_check)#
template<typename vertex_t, typename edge_t, typename weight_t, bool store_transposed, bool multi_gpu>
std::enable_if_t<!multi_gpu, std::tuple<graph_t<vertex_t, edge_t, store_transposed, multi_gpu>, std::optional<edge_property_t<graph_view_t<vertex_t, edge_t, store_transposed, multi_gpu>, weight_t>>, std::optional<rmm::device_uvector<vertex_t>>>> coarsen_graph(raft::handle_t const &handle, graph_view_t<vertex_t, edge_t, store_transposed, multi_gpu> const &graph_view, std::optional<edge_property_view_t<edge_t, weight_t const*>> edge_weight_view, vertex_t const *labels, bool renumber, bool do_expensive_check)#
template<typename edge_t, typename VertexIterator>
rmm::device_uvector<edge_t> compute_sparse_offsets(VertexIterator edgelist_major_first, VertexIterator edgelist_major_last, typename thrust::iterator_traits<VertexIterator>::value_type major_range_first, typename thrust::iterator_traits<VertexIterator>::value_type major_range_last, bool edgelist_major_sorted, rmm::cuda_stream_view stream_view)#
template<typename vertex_t, typename edge_t>
std::tuple<rmm::device_uvector<edge_t>, rmm::device_uvector<vertex_t>> compress_hypersparse_offsets(rmm::device_uvector<edge_t> &&offsets, vertex_t major_range_first, vertex_t major_hypersparse_first, vertex_t major_range_last, rmm::cuda_stream_view stream_view)#
template<typename vertex_t, typename edge_t, typename edge_value_t, bool store_transposed>
std::tuple<rmm::device_uvector<edge_t>, rmm::device_uvector<vertex_t>, decltype(allocate_dataframe_buffer<edge_value_t>(size_t{0}, rmm::cuda_stream_view{})), std::optional<rmm::device_uvector<vertex_t>>> sort_and_compress_edgelist(rmm::device_uvector<vertex_t> &&edgelist_srcs, rmm::device_uvector<vertex_t> &&edgelist_dsts, decltype(allocate_dataframe_buffer<edge_value_t>(0, rmm::cuda_stream_view{})) &&edgelist_values, vertex_t major_range_first, std::optional<vertex_t> major_hypersparse_first, vertex_t major_range_last, vertex_t, vertex_t, size_t mem_frugal_threshold, rmm::cuda_stream_view stream_view)#
template<typename vertex_t, typename edge_t, bool store_transposed>
std::tuple<rmm::device_uvector<edge_t>, rmm::device_uvector<vertex_t>, std::optional<rmm::device_uvector<vertex_t>>> sort_and_compress_edgelist(rmm::device_uvector<vertex_t> &&edgelist_srcs, rmm::device_uvector<vertex_t> &&edgelist_dsts, vertex_t major_range_first, std::optional<vertex_t> major_hypersparse_first, vertex_t major_range_last, vertex_t, vertex_t, size_t mem_frugal_threshold, rmm::cuda_stream_view stream_view)#
template<typename edge_t, typename VertexIterator, typename EdgeValueIterator>
void sort_adjacency_list(raft::handle_t const &handle, raft::device_span<edge_t const> offsets, VertexIterator index_first, VertexIterator index_last, EdgeValueIterator edge_value_first)#
template<typename edge_t, typename VertexIterator>
void sort_adjacency_list(raft::handle_t const &handle, raft::device_span<edge_t const> offsets, VertexIterator index_first, VertexIterator index_last)#
template<typename comparison_t>
std::tuple<size_t, rmm::device_uvector<uint32_t>> mark_entries(raft::handle_t const &handle, size_t num_entries, comparison_t comparison)#
template<typename T>
rmm::device_uvector<T> keep_flagged_elements(raft::handle_t const &handle, rmm::device_uvector<T> &&vector, raft::device_span<uint32_t const> keep_flags, size_t keep_count)#
template<typename vertex_t, typename edge_value_t>
std::tuple<rmm::device_uvector<vertex_t>, rmm::device_uvector<vertex_t>, std::optional<rmm::device_uvector<edge_value_t>>, std::vector<size_t>> group_edges(raft::handle_t const &handle, rmm::device_uvector<vertex_t> &&edgelist_srcs, rmm::device_uvector<vertex_t> &&edgelist_dsts, std::optional<rmm::device_uvector<edge_value_t>> &&edgelist_values, int num_groups)#
template<typename vertex_t>
std::vector<rmm::device_uvector<bool>> compute_multi_edge_flags(raft::handle_t const &handle, raft::host_span<raft::device_span<vertex_t const>> edgelist_srcs, raft::host_span<raft::device_span<vertex_t const>> edgelist_dsts)#
template<typename vertex_t, typename edge_value_t>
void sort_multi_edges(raft::handle_t const &handle, raft::device_span<vertex_t> edgelist_srcs, raft::device_span<vertex_t> edgelist_dsts, std::optional<raft::device_span<edge_value_t>> edgelist_values, bool keep_min_value_edge)#
template<typename vertex_t, typename edge_t, typename weight_t, typename edge_type_t, typename edge_time_t>
void sort_multi_edges(raft::handle_t const &handle, raft::device_span<vertex_t> edgelist_srcs, raft::device_span<vertex_t> edgelist_dsts, raft::device_span<size_t> edgelist_indices, edge_value_compare_t<edge_t, weight_t, edge_type_t, edge_time_t> edge_value_compare, bool keep_min_value_edge)#
template<typename vertex_t, typename edge_t, typename weight_t, typename edge_type_t, typename edge_time_t>
std::tuple<std::vector<rmm::device_uvector<vertex_t>>, std::vector<rmm::device_uvector<vertex_t>>, std::optional<std::vector<rmm::device_uvector<weight_t>>>, std::optional<std::vector<rmm::device_uvector<edge_t>>>, std::optional<std::vector<rmm::device_uvector<edge_type_t>>>, std::optional<std::vector<rmm::device_uvector<edge_time_t>>>, std::optional<std::vector<rmm::device_uvector<edge_time_t>>>> remove_multi_edges_impl(raft::handle_t const &handle, std::vector<rmm::device_uvector<vertex_t>> &&edgelist_srcs, std::vector<rmm::device_uvector<vertex_t>> &&edgelist_dsts, std::optional<std::vector<rmm::device_uvector<weight_t>>> &&edgelist_weights, std::optional<std::vector<rmm::device_uvector<edge_t>>> &&edgelist_edge_ids, std::optional<std::vector<rmm::device_uvector<edge_type_t>>> &&edgelist_edge_types, std::optional<std::vector<rmm::device_uvector<edge_time_t>>> &&edgelist_edge_start_times, std::optional<std::vector<rmm::device_uvector<edge_time_t>>> &&edgelist_edge_end_times, bool keep_min_value_edge)#
template<typename vertex_t>
std::optional<vertex_t> find_locally_unused_ext_vertex_id(raft::handle_t const &handle, raft::device_span<vertex_t const> sorted_local_vertices, bool multi_gpu)#
template<typename vertex_t, typename edge_t, bool multi_gpu>
std::tuple<rmm::device_uvector<vertex_t>, std::vector<vertex_t>, std::optional<std::vector<vertex_t>>, vertex_t> compute_renumber_map(raft::handle_t const &handle, std::optional<rmm::device_uvector<vertex_t>> &&local_vertices, std::vector<vertex_t const*> const &edgelist_majors, std::vector<vertex_t const*> const &edgelist_minors, std::vector<edge_t> const &edgelist_edge_counts)#
template<typename vertex_t, typename edge_t, bool multi_gpu>
void expensive_check_edgelist(raft::handle_t const &handle, std::optional<rmm::device_uvector<vertex_t>> const &local_vertices, std::vector<vertex_t const*> const &edgelist_majors, std::vector<vertex_t const*> const &edgelist_minors, std::vector<edge_t> const &edgelist_edge_counts, std::optional<std::vector<std::vector<edge_t>>> const &edgelist_intra_partition_segment_offsets)#
template<typename vertex_t>
std::vector<vertex_t> aggregate_offset_vectors(raft::handle_t const &handle, std::vector<vertex_t> const &offsets)#
template<typename vertex_t>
void unrenumber_local_int_edges(raft::handle_t const &handle, std::vector<vertex_t*> const &edgelist_majors, std::vector<vertex_t*> const &edgelist_minors, std::vector<size_t> const &edgelist_edge_counts, vertex_t const *renumber_map_labels, raft::host_span<vertex_t const> vertex_partition_range_lasts, std::optional<std::vector<std::vector<size_t>>> const &edgelist_intra_partition_segment_offsets, bool do_expensive_check)#
template<typename vertex_t, typename property_t>
std::tuple<rmm::device_uvector<vertex_t>, rmm::device_uvector<vertex_t>, rmm::device_uvector<property_t>> merge_lower_triangular(raft::handle_t const &handle, rmm::device_uvector<vertex_t> &&lower_triangular_majors, rmm::device_uvector<vertex_t> &&lower_triangular_minors, rmm::device_uvector<property_t> &&lower_triangular_properties, rmm::device_uvector<vertex_t> &&upper_triangular_majors, rmm::device_uvector<vertex_t> &&upper_triangular_minors, rmm::device_uvector<property_t> &&upper_triangular_properties, size_t num_lower_triangular_edges, bool reciprocal)#
template<typename vertex_t>
std::tuple<rmm::device_uvector<vertex_t>, rmm::device_uvector<vertex_t>> merge_lower_triangular(raft::handle_t const &handle, rmm::device_uvector<vertex_t> &&lower_triangular_majors, rmm::device_uvector<vertex_t> &&lower_triangular_minors, rmm::device_uvector<vertex_t> &&upper_triangular_majors, rmm::device_uvector<vertex_t> &&upper_triangular_minors, size_t num_lower_triangular_edges, bool reciprocal)#
template<typename vertex_t, typename edge_t, typename weight_t, typename edge_type_t, typename edge_time_t, bool multi_gpu>
std::tuple<rmm::device_uvector<vertex_t>, rmm::device_uvector<vertex_t>, std::optional<rmm::device_uvector<weight_t>>, std::optional<rmm::device_uvector<edge_t>>, std::optional<rmm::device_uvector<edge_type_t>>, std::optional<rmm::device_uvector<edge_time_t>>, std::optional<rmm::device_uvector<edge_time_t>>> symmetrize_edgelist(raft::handle_t const &handle, rmm::device_uvector<vertex_t> &&edgelist_majors, rmm::device_uvector<vertex_t> &&edgelist_minors, std::optional<rmm::device_uvector<weight_t>> &&edgelist_weights, std::optional<rmm::device_uvector<edge_t>> &&edgelist_edge_ids, std::optional<rmm::device_uvector<edge_type_t>> &&edgelist_edge_types, std::optional<rmm::device_uvector<edge_time_t>> &&edgelist_edge_start_times, std::optional<rmm::device_uvector<edge_time_t>> &&edgelist_edge_end_times, bool reciprocal)#
template<typename GraphViewType, typename PredecessorIterator>
void bfs(raft::handle_t const &handle, GraphViewType const &graph_view, typename GraphViewType::vertex_type *distances, PredecessorIterator predecessor_first, typename GraphViewType::vertex_type const *sources, size_t n_sources, bool direction_optimizing, typename GraphViewType::vertex_type depth_limit, bool do_expensive_check)#
template<typename vertex_t>
std::tuple<rmm::device_uvector<vertex_t>, rmm::device_uvector<size_t>> shrink_extraction_list(raft::handle_t const &handle, rmm::device_uvector<vertex_t> &&vertex_list, rmm::device_uvector<size_t> &&path_offset)#
template<typename GraphViewType>
std::tuple<rmm::device_uvector<size_t>, rmm::device_uvector<typename GraphViewType::vertex_type>> k_hop_nbrs(raft::handle_t const &handle, GraphViewType const &push_graph_view, raft::device_span<typename GraphViewType::vertex_type const> start_vertices, size_t k, bool do_expensive_check)#
template<typename GraphViewType, typename weight_t, typename PredecessorIterator>
void sssp(raft::handle_t const &handle, GraphViewType const &push_graph_view, edge_property_view_t<typename GraphViewType::edge_type, weight_t const*> edge_weight_view, weight_t *distances, PredecessorIterator predecessor_first, typename GraphViewType::vertex_type source_vertex, weight_t cutoff, bool do_expensive_check)#
template<typename vertex_t, typename edge_t, typename weight_t>
std::unique_ptr<legacy::GraphCOO<vertex_t, edge_t, weight_t>> mst_impl(raft::handle_t const &handle, legacy::GraphCSRView<vertex_t, edge_t, weight_t> const &graph, rmm::device_async_resource_ref mr)#
template<typename GraphViewType, typename VertexPairIterator>
size_t count_invalid_vertex_pairs(raft::handle_t const &handle, GraphViewType const &graph_view, VertexPairIterator vertex_pair_first, VertexPairIterator vertex_pair_last)#
template<typename vertex_t, typename weight_t> static __global__ void get_traversed_cost_kernel (vertex_t const *vertices, vertex_t const *preds, vertex_t const *vtx_map, weight_t const *info_weights, weight_t *out, vertex_t stop_vertex, vertex_t num_vertices)
template<typename vertex_t, typename weight_t>
void get_traversed_cost_impl(raft::handle_t const &handle, vertex_t const *vertices, vertex_t const *preds, weight_t const *info_weights, weight_t *out, vertex_t stop_vertex, vertex_t num_vertices)#
template<typename vertex_t>
rmm::device_uvector<vertex_t> shuffle_local_edge_majors_to_local_gpu_by_vertex_partitioning(raft::handle_t const &handle, rmm::device_uvector<vertex_t> &&edge_majors, raft::host_span<vertex_t const> vertex_partition_range_lasts)#
template<typename vertex_t, typename value_t>
std::tuple<rmm::device_uvector<vertex_t>, dataframe_buffer_type_t<value_t>> shuffle_local_edge_major_value_pairs_to_local_gpu_by_vertex_partitioning(raft::handle_t const &handle, rmm::device_uvector<vertex_t> &&edge_majors, dataframe_buffer_type_t<value_t> &&edge_values, raft::host_span<vertex_t const> vertex_partition_range_lasts)#
template<typename vertex_t>
rmm::device_uvector<vertex_t> 按顶点分区将局部边次要端点洗牌到局部 GPU(raft::handle_t const &handle, rmm::device_uvector<vertex_t> &&edge_minors, raft::host_span<vertex_t const> vertex_partition_range_lasts)#
template<typename vertex_t, typename value_t>
std::tuple<rmm::device_uvector<vertex_t>, dataframe_buffer_type_t<value_t>> 按顶点分区将局部边次要端点-值对洗牌到局部 GPU(raft::handle_t const &handle, rmm::device_uvector<vertex_t> &&edge_minors, dataframe_buffer_type_t<value_t> &&edge_values, raft::host_span<vertex_t const> vertex_partition_range_lasts)#
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::vector< size_t > > 按边分区将外部顶点对及值洗牌到局部 GPU (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&majors, rmm::device_uvector< int32_t > &&minors, std::optional< rmm::device_uvector< float > > &&weights, std::optional< rmm::device_uvector< int32_t > > &&edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edge_types, std::optional< rmm::device_uvector< int32_t > > &&edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edge_end_times)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::vector< size_t > > 按边分区将外部顶点对及值洗牌到局部 GPU (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&majors, rmm::device_uvector< int32_t > &&minors, std::optional< rmm::device_uvector< double > > &&weights, std::optional< rmm::device_uvector< int32_t > > &&edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edge_types, std::optional< rmm::device_uvector< int32_t > > &&edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edge_end_times)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int64_t > >, std::vector< size_t > > 按边分区将外部顶点对及值洗牌到局部 GPU (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&majors, rmm::device_uvector< int32_t > &&minors, std::optional< rmm::device_uvector< float > > &&weights, std::optional< rmm::device_uvector< int32_t > > &&edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edge_types, std::optional< rmm::device_uvector< int64_t > > &&edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edge_end_times)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int64_t > >, std::vector< size_t > > 按边分区将外部顶点对及值洗牌到局部 GPU (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&majors, rmm::device_uvector< int32_t > &&minors, std::optional< rmm::device_uvector< double > > &&weights, std::optional< rmm::device_uvector< int32_t > > &&edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edge_types, std::optional< rmm::device_uvector< int64_t > > &&edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edge_end_times)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::vector< size_t > > 按边分区将内部顶点对及值洗牌到局部 GPU (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&majors, rmm::device_uvector< int32_t > &&minors, std::optional< rmm::device_uvector< float > > &&weights, std::optional< rmm::device_uvector< int32_t > > &&edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edge_types, std::optional< rmm::device_uvector< int32_t > > &&edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edge_end_times, raft::host_span< int32_t const > vertex_partition_range_lasts)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::vector< size_t > > 按边分区将内部顶点对及值洗牌到局部 GPU (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&majors, rmm::device_uvector< int32_t > &&minors, std::optional< rmm::device_uvector< double > > &&weights, std::optional< rmm::device_uvector< int32_t > > &&edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edge_types, std::optional< rmm::device_uvector< int32_t > > &&edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edge_end_times, raft::host_span< int32_t const > vertex_partition_range_lasts)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int64_t > >, std::vector< size_t > > 按边分区将内部顶点对及值洗牌到局部 GPU (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&majors, rmm::device_uvector< int32_t > &&minors, std::optional< rmm::device_uvector< float > > &&weights, std::optional< rmm::device_uvector< int32_t > > &&edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edge_types, std::optional< rmm::device_uvector< int64_t > > &&edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edge_end_times, raft::host_span< int32_t const > vertex_partition_range_lasts)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int64_t > >, std::vector< size_t > > 按边分区将内部顶点对及值洗牌到局部 GPU (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&majors, rmm::device_uvector< int32_t > &&minors, std::optional< rmm::device_uvector< double > > &&weights, std::optional< rmm::device_uvector< int32_t > > &&edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edge_types, std::optional< rmm::device_uvector< int64_t > > &&edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edge_end_times, raft::host_span< int32_t const > vertex_partition_range_lasts)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::vector< size_t > > 按边分区将外部顶点对及值洗牌到局部 GPU (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&majors, rmm::device_uvector< int64_t > &&minors, std::optional< rmm::device_uvector< float > > &&weights, std::optional< rmm::device_uvector< int64_t > > &&edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edge_types, std::optional< rmm::device_uvector< int32_t > > &&edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edge_end_times)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::vector< size_t > > 按边分区将外部顶点对及值洗牌到局部 GPU (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&majors, rmm::device_uvector< int64_t > &&minors, std::optional< rmm::device_uvector< double > > &&weights, std::optional< rmm::device_uvector< int64_t > > &&edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edge_types, std::optional< rmm::device_uvector< int32_t > > &&edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edge_end_times)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int64_t > >, std::vector< size_t > > 按边分区将外部顶点对及值洗牌到局部 GPU (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&majors, rmm::device_uvector< int64_t > &&minors, std::optional< rmm::device_uvector< float > > &&weights, std::optional< rmm::device_uvector< int64_t > > &&edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edge_types, std::optional< rmm::device_uvector< int64_t > > &&edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edge_end_times)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int64_t > >, std::vector< size_t > > 按边分区将外部顶点对及值洗牌到局部 GPU (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&majors, rmm::device_uvector< int64_t > &&minors, std::optional< rmm::device_uvector< double > > &&weights, std::optional< rmm::device_uvector< int64_t > > &&edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edge_types, std::optional< rmm::device_uvector< int64_t > > &&edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edge_end_times)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::vector< size_t > > 按边分区将内部顶点对及值洗牌到局部 GPU (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&majors, rmm::device_uvector< int64_t > &&minors, std::optional< rmm::device_uvector< float > > &&weights, std::optional< rmm::device_uvector< int64_t > > &&edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edge_types, std::optional< rmm::device_uvector< int32_t > > &&edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edge_end_times, raft::host_span< int64_t const > vertex_partition_range_lasts)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int32_t > >, std::vector< size_t > > 按边分区将内部顶点对及值洗牌到局部 GPU (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&majors, rmm::device_uvector< int64_t > &&minors, std::optional< rmm::device_uvector< double > > &&weights, std::optional< rmm::device_uvector< int64_t > > &&edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edge_types, std::optional< rmm::device_uvector< int32_t > > &&edge_start_times, std::optional< rmm::device_uvector< int32_t > > &&edge_end_times, raft::host_span< int64_t const > vertex_partition_range_lasts)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< float > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int64_t > >, std::vector< size_t > > 按边分区将内部顶点对及值洗牌到局部 GPU (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&majors, rmm::device_uvector< int64_t > &&minors, std::optional< rmm::device_uvector< float > > &&weights, std::optional< rmm::device_uvector< int64_t > > &&edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edge_types, std::optional< rmm::device_uvector< int64_t > > &&edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edge_end_times, raft::host_span< int64_t const > vertex_partition_range_lasts)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t >, std::optional< rmm::device_uvector< double > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int32_t > >, std::optional< rmm::device_uvector< int64_t > >, std::optional< rmm::device_uvector< int64_t > >, std::vector< size_t > > 按边分区将内部顶点对及值洗牌到局部 GPU (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&majors, rmm::device_uvector< int64_t > &&minors, std::optional< rmm::device_uvector< double > > &&weights, std::optional< rmm::device_uvector< int64_t > > &&edge_ids, std::optional< rmm::device_uvector< int32_t > > &&edge_types, std::optional< rmm::device_uvector< int64_t > > &&edge_start_times, std::optional< rmm::device_uvector< int64_t > > &&edge_end_times, raft::host_span< int64_t const > vertex_partition_range_lasts)
template<typename vertex_t>
rmm::device_uvector<vertex_t> 按顶点分区将外部顶点洗牌到局部 GPU(raft::handle_t const &handle, rmm::device_uvector<vertex_t> &&vertices)#
template<typename vertex_t, typename value_t>
std::tuple<rmm::device_uvector<vertex_t>, rmm::device_uvector<value_t>> 按顶点分区将外部顶点-值对洗牌到局部 GPU(raft::handle_t const &handle, rmm::device_uvector<vertex_t> &&vertices, rmm::device_uvector<value_t> &&values)#
template rmm::device_uvector< int32_t > 按顶点分区将内部顶点洗牌到局部 GPU (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&vertices, raft::host_span< int32_t const > vertex_partition_range_lasts)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int32_t > > 按顶点分区将内部顶点-值对洗牌到局部 GPU (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&d_vertices, rmm::device_uvector< int32_t > &&d_values, raft::host_span< int32_t const > vertex_partition_range_lasts)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< int64_t > > 按顶点分区将内部顶点-值对洗牌到局部 GPU (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&d_vertices, rmm::device_uvector< int64_t > &&d_values, raft::host_span< int32_t const > vertex_partition_range_lasts)
template std::tuple< rmm::device_uvector< int32_t >, rmm::device_uvector< size_t > > 按顶点分区将内部顶点-值对洗牌到局部 GPU (raft::handle_t const &handle, rmm::device_uvector< int32_t > &&d_vertices, rmm::device_uvector< size_t > &&d_values, raft::host_span< int32_t const > vertex_partition_range_lasts)
template rmm::device_uvector< int64_t > 按顶点分区将内部顶点洗牌到局部 GPU (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&vertices, raft::host_span< int64_t const > vertex_partition_range_lasts)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int32_t > > 按顶点分区将内部顶点-值对洗牌到局部 GPU (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&d_vertices, rmm::device_uvector< int32_t > &&d_values, raft::host_span< int64_t const > vertex_partition_range_lasts)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< int64_t > > 按顶点分区将内部顶点-值对洗牌到局部 GPU (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&d_vertices, rmm::device_uvector< int64_t > &&d_values, raft::host_span< int64_t const > vertex_partition_range_lasts)
template std::tuple< rmm::device_uvector< int64_t >, rmm::device_uvector< size_t > > 按顶点分区将内部顶点-值对洗牌到局部 GPU (raft::handle_t const &handle, rmm::device_uvector< int64_t > &&d_vertices, rmm::device_uvector< size_t > &&d_values, raft::host_span< int64_t const > vertex_partition_range_lasts)
template<typename vertex_t, typename edge_t, bool multi_gpu> static __global__ void 解压到边列表中(中度) (edge_partition_device_view_t< vertex_t, edge_t, multi_gpu > edge_partition, vertex_t major_range_first, vertex_t major_range_last, raft::device_span< vertex_t > majors)
template<typename vertex_t, typename edge_t, bool multi_gpu> static __global__ void 解压到边列表中(高度) (edge_partition_device_view_t< vertex_t, edge_t, multi_gpu > edge_partition, vertex_t major_range_first, vertex_t major_range_last, raft::device_span< vertex_t > majors)
template<typename vertex_t, typename edge_t, bool multi_gpu>
void 解压边分区以填充边列表主要端点(raft::handle_t const &handle, edge_partition_device_view_t<vertex_t, edge_t, multi_gpu> edge_partition, std::optional<edge_partition_edge_property_device_view_t<edge_t, uint32_t const*, bool>> edge_partition_mask_view, raft::device_span<vertex_t> majors, std::optional<std::vector<vertex_t>> const &segment_offsets)#
template<typename vertex_t, typename edge_t, typename weight_t, typename edge_type_t, bool multi_gpu>
void decompress_edge_partition_to_edgelist(raft::handle_t const &handle, edge_partition_device_view_t<vertex_t, edge_t, multi_gpu> edge_partition, std::optional<edge_partition_edge_property_device_view_t<edge_t, weight_t const*>> edge_partition_weight_view, std::optional<edge_partition_edge_property_device_view_t<edge_t, edge_t const*>> edge_partition_id_view, std::optional<edge_partition_edge_property_device_view_t<edge_t, edge_type_t const*>> edge_partition_type_view, std::optional<edge_partition_edge_property_device_view_t<edge_t, uint32_t const*, bool>> edge_partition_mask_view, raft::device_span<vertex_t> edgelist_majors, raft::device_span<vertex_t> edgelist_minors, std::optional<raft::device_span<weight_t>> edgelist_weights, std::optional<raft::device_span<edge_t>> edgelist_ids, std::optional<raft::device_span<edge_type_t>> edgelist_types, std::optional<std::vector<vertex_t>> const &segment_offsets)#
template<typename vertex_t> __device__ cuda::std::optional< vertex_t > major_hypersparse_idx_from_major_nocheck_impl (raft::device_span< vertex_t const > dcs_nzd_vertices, vertex_t major)
template<typename Iterator, typename TupleType, std::size_t... Is> __device__ constexpr TupleType thrust_tuple_atomic_and (Iterator iter, TupleType tup, std::index_sequence< Is... >)
template<typename Iterator, typename TupleType, std::size_t... Is> __device__ constexpr TupleType thrust_tuple_atomic_or (Iterator iter, TupleType tup, std::index_sequence< Is... >)
template<typename Iterator, typename TupleType, std::size_t... Is> __device__ constexpr TupleType thrust_tuple_atomic_add (Iterator iter, TupleType tup, std::index_sequence< Is... >)
template<typename Iterator, typename TupleType, std::size_t... Is> __device__ constexpr TupleType thrust_tuple_elementwise_atomic_cas (Iterator iter, TupleType comp_tup, TupleType val_tup, std::index_sequence< Is... >)
template<typename Iterator, typename TupleType, std::size_t... Is> __device__ constexpr TupleType thrust_tuple_elementwise_atomic_min (Iterator iter, TupleType tup, std::index_sequence< Is... >)
template<typename Iterator, typename TupleType, std::size_t... Is> __device__ constexpr TupleType thrust_tuple_elementwise_atomic_max (Iterator iter, TupleType tup, std::index_sequence< Is... >)
template<typename TupleType, size_t... Is>
auto allocate_dataframe_buffer_tuple_impl(std::index_sequence<Is...>, size_t buffer_size, rmm::cuda_stream_view stream_view)#
template<typename TupleType, std::size_t... Is>
auto get_dataframe_buffer_begin_tuple_impl(std::index_sequence<Is...>, TupleType &buffer)#
template<typename TupleType, std::size_t... Is>
auto get_dataframe_buffer_end_tuple_impl(std::index_sequence<Is...>, TupleType &buffer)#
template<typename TupleType, size_t... Is>
auto get_dataframe_buffer_cbegin_tuple_impl(std::index_sequence<Is...>, TupleType &buffer)#
template<typename TupleType, std::size_t... Is>
auto get_dataframe_buffer_cend_tuple_impl(std::index_sequence<Is...>, TupleType &buffer)#
template<typename T>
T *iter_to_raw_ptr(T *ptr)#
template<typename T>
T *iter_to_raw_ptr(thrust::device_ptr<T> ptr)#
template<typename T>
auto iter_to_raw_ptr(thrust::detail::normal_iterator<thrust::device_ptr<T>> iter)#
template<typename InputIterator, typename OutputValueType>
std::enable_if_t<std::is_same_v<OutputValueType, thrust::detail::any_assign>, void> device_isend_impl(raft::comms::comms_t const &comm, InputIterator input_first, size_t count, int dst, int tag, raft::comms::request_t *request)#
template<typename InputIterator, typename OutputValueType>
std::enable_if_t<std::is_arithmetic<OutputValueType>::value, void> device_isend_impl(raft::comms::comms_t const &comm, InputIterator input_first, size_t count, int dst, int tag, raft::comms::request_t *request)#
template<typename InputValueType, typename OutputIterator>
std::enable_if_t<thrust::detail::is_discard_iterator<OutputIterator>::value, void> device_irecv_impl(raft::comms::comms_t const &comm, OutputIterator output_first, size_t count, int src, int tag, raft::comms::request_t *request)#
template<typename InputValueType, typename OutputIterator>
std::enable_if_t<std::is_arithmetic<typename std::iterator_traits<OutputIterator>::value_type>::value, void> device_irecv_impl(raft::comms::comms_t const &comm, OutputIterator output_first, size_t count, int src, int tag, raft::comms::request_t *request)#
template<typename InputIterator, typename OutputIterator>
std::enable_if_t<thrust::detail::is_discard_iterator<OutputIterator>::value, void> device_sendrecv_impl(raft::comms::comms_t const &comm, InputIterator input_first, size_t tx_count, int dst, OutputIterator output_first, size_t rx_count, int src, rmm::cuda_stream_view stream_view)#
template<typename InputIterator, typename OutputIterator>
std::enable_if_t<std::is_arithmetic<typename std::iterator_traits<OutputIterator>::value_type>::value, void> device_sendrecv_impl(raft::comms::comms_t const &comm, InputIterator input_first, size_t tx_count, int dst, OutputIterator output_first, size_t rx_count, int src, rmm::cuda_stream_view stream_view)#
template<typename InputIterator, typename OutputIterator>
std::enable_if_t<thrust::detail::is_discard_iterator<OutputIterator>::value, void> device_multicast_sendrecv_impl(raft::comms::comms_t const &comm, InputIterator input_first, raft::host_span<size_t const> tx_counts, raft::host_span<size_t const> tx_displs, raft::host_span<int const> tx_dst_ranks, OutputIterator output_first, raft::host_span<size_t const> rx_counts, raft::host_span<size_t const> rx_displs, raft::host_span<int const> rx_src_ranks, rmm::cuda_stream_view stream_view)#
template<typename InputIterator, typename OutputIterator>
std::enable_if_t<std::is_arithmetic<typename std::iterator_traits<OutputIterator>::value_type>::value, void> device_multicast_sendrecv_impl(raft::comms::comms_t const &comm, InputIterator input_first, raft::host_span<size_t const> tx_counts, raft::host_span<size_t const> tx_displs, raft::host_span<int const> tx_dst_ranks, OutputIterator output_first, raft::host_span<size_t const> rx_counts, raft::host_span<size_t const> rx_displs, raft::host_span<int const> rx_src_ranks, rmm::cuda_stream_view stream_view)#
template<typename InputIterator, typename OutputIterator>
std::enable_if_t<thrust::detail::is_discard_iterator<OutputIterator>::value, void> device_bcast_impl(raft::comms::comms_t const &comm, InputIterator input_first, OutputIterator output_first, size_t count, int root, rmm::cuda_stream_view stream_view)#
template<typename InputIterator, typename OutputIterator>
std::enable_if_t<std::is_arithmetic<typename std::iterator_traits<OutputIterator>::value_type>::value, void> device_bcast_impl(raft::comms::comms_t const &comm, InputIterator input_first, OutputIterator output_first, size_t count, int root, rmm::cuda_stream_view stream_view)#
template<typename InputIterator, typename OutputIterator>
std::enable_if_t<thrust::detail::is_discard_iterator<OutputIterator>::value, void> device_allreduce_impl(raft::comms::comms_t const &comm, InputIterator input_first, OutputIterator output_first, size_t count, raft::comms::op_t op, rmm::cuda_stream_view stream_view)#
template<typename InputIterator, typename OutputIterator>
std::enable_if_t<std::is_arithmetic<typename std::iterator_traits<OutputIterator>::value_type>::value, void> device_allreduce_impl(raft::comms::comms_t const &comm, InputIterator input_first, OutputIterator output_first, size_t count, raft::comms::op_t op, rmm::cuda_stream_view stream_view)#
template<typename InputIterator, typename OutputIterator>
std::enable_if_t<thrust::detail::is_discard_iterator<OutputIterator>::value, void> device_reduce_impl(raft::comms::comms_t const &comm, InputIterator input_first, OutputIterator output_first, size_t count, raft::comms::op_t op, int root, rmm::cuda_stream_view stream_view)#
template<typename InputIterator, typename OutputIterator>
std::enable_if_t<std::is_arithmetic<typename std::iterator_traits<OutputIterator>::value_type>::value, void> device_reduce_impl(raft::comms::comms_t const &comm, InputIterator input_first, OutputIterator output_first, size_t count, raft::comms::op_t op, int root, rmm::cuda_stream_view stream_view)#
template<typename InputIterator, typename OutputIterator>
std::enable_if_t<thrust::detail::is_discard_iterator<OutputIterator>::value, void> device_allgather_impl(raft::comms::comms_t const &comm, InputIterator input_first, OutputIterator output_first, size_t sendcount, rmm::cuda_stream_view stream_view)#
template<typename InputIterator, typename OutputIterator>
std::enable_if_t<std::is_arithmetic<typename std::iterator_traits<OutputIterator>::value_type>::value, void> device_allgather_impl(raft::comms::comms_t const &comm, InputIterator input_first, OutputIterator output_first, size_t sendcount, rmm::cuda_stream_view stream_view)#
template<typename InputIterator, typename OutputIterator>
std::enable_if_t<thrust::detail::is_discard_iterator<OutputIterator>::value, void> device_allgatherv_impl(raft::comms::comms_t const &comm, InputIterator input_first, OutputIterator output_first, raft::host_span<size_t const> recvcounts, raft::host_span<size_t const> displacements, rmm::cuda_stream_view stream_view)#
template<typename InputIterator, typename OutputIterator>
std::enable_if_t<std::is_arithmetic<typename std::iterator_traits<OutputIterator>::value_type>::value, void> device_allgatherv_impl(raft::comms::comms_t const &comm, InputIterator input_first, OutputIterator output_first, raft::host_span<size_t const> recvcounts, raft::host_span<size_t const> displacements, rmm::cuda_stream_view stream_view)#
template<typename InputIterator, typename OutputIterator>
std::enable_if_t<thrust::detail::is_discard_iterator<OutputIterator>::value, void> device_gatherv_impl(raft::comms::comms_t const &comm, InputIterator input_first, OutputIterator output_first, size_t sendcount, raft::host_span<size_t const> recvcounts, raft::host_span<size_t const> displacements, int root, rmm::cuda_stream_view stream_view)#
template<typename InputIterator, typename OutputIterator>
std::enable_if_t<std::is_arithmetic<typename std::iterator_traits<OutputIterator>::value_type>::value, void> device_gatherv_impl(raft::comms::comms_t const &comm, InputIterator input_first, OutputIterator output_first, size_t sendcount, raft::host_span<size_t const> recvcounts, raft::host_span<size_t const> displacements, int root, rmm::cuda_stream_view stream_view)#
template<typename MaskIterator> __device__ size_t count_set_bits (MaskIterator mask_first, size_t start_offset, size_t num_bits)
template<typename MaskIterator> __device__ size_t find_nth_set_bits (MaskIterator mask_first, size_t start_offset, size_t num_bits, size_t n)
template<typename InputIterator, typename MaskIterator, typename OutputIterator, typename input_value_type = typename thrust::iterator_traits<InputIterator>::value_type, typename output_value_type = typename thrust::iterator_traits<            OutputIterator>::value_type> __device__ size_t copy_if_mask_set (InputIterator input_first, MaskIterator mask_first, OutputIterator output_first, size_t input_start_offset, size_t output_start_offset, size_t num_items)
template<typename MaskIterator>
size_t count_set_bits(raft::handle_t const &handle, MaskIterator mask_first, size_t num_bits)#
template<typename InputIterator, typename MaskIterator, typename OutputIterator>
OutputIterator copy_if_mask_set(raft::handle_t const &handle, InputIterator input_first, InputIterator input_last, MaskIterator mask_first, OutputIterator output_first)#
template<typename vertex_t, typename offset_t>
std::tuple<std::vector<vertex_t>, std::vector<offset_t>> compute_offset_aligned_element_chunks(raft::handle_t const &handle, raft::device_span<offset_t const> offsets, offset_t num_elements, vertex_t approx_element_chunk_size)#
template<typename T>
cuda::std::optional<T> to_thrust_optional(std::optional<T> val)#
template<typename T>
std::optional<T> to_std_optional(cuda::std::optional<T> val)#
template<typename idx_t, typename offset_t>
rmm::device_uvector<idx_t> expand_sparse_offsets(raft::device_span<offset_t const> offsets, idx_t base_idx, rmm::cuda_stream_view stream_view)#
template<typename ValueIterator, typename value_t, std::size_t... Is>
std::enable_if_t<cugraph::is_thrust_tuple_of_arithmetic<typename thrust::iterator_traits<ValueIterator>::value_type>::value && cugraph::is_thrust_tuple_of_arithmetic<value_t>::value, bool> has_packed_bool_element(std::index_sequence<Is...>)#
inline std::tuple<std::vector<size_t>, std::vector<size_t>, std::vector<int>, std::vector<size_t>, std::vector<size_t>, std::vector<int>> compute_tx_rx_counts_displs_ranks(raft::comms::comms_t const &comm, rmm::device_uvector<size_t> const &d_tx_value_counts, bool drop_empty_ranks, rmm::cuda_stream_view stream_view)#
template<typename ValueIterator, typename ValueToGroupIdOp>
void multi_partition(ValueIterator value_first, ValueIterator value_last, ValueToGroupIdOp value_to_group_id_op, int group_first, int group_last, rmm::cuda_stream_view stream_view)#
template<typename KeyIterator, typename ValueIterator, typename KeyToGroupIdOp>
void multi_partition(KeyIterator key_first, KeyIterator key_last, ValueIterator value_first, KeyToGroupIdOp key_to_group_id_op, int group_first, int group_last, rmm::cuda_stream_view stream_view)#
template<typename ValueIterator>
void swap_partitions(ValueIterator value_first, ValueIterator value_last, size_t first_partition_size, rmm::cuda_stream_view stream_view)#
template<typename KeyIterator, typename ValueIterator>
void swap_partitions(KeyIterator key_first, KeyIterator key_last, ValueIterator value_first, size_t first_partition_size, rmm::cuda_stream_view stream_view)#
template<typename ValueIterator, typename ValueToGroupIdOp>
ValueIterator mem_frugal_partition(ValueIterator value_first, ValueIterator value_last, ValueToGroupIdOp value_to_group_id_op, int pivot, rmm::cuda_stream_view stream_view)#
template<typename KeyIterator, typename ValueIterator, typename KeyToGroupIdOp>
std::tuple<KeyIterator, ValueIterator> mem_frugal_partition(KeyIterator key_first, KeyIterator key_last, ValueIterator value_first, KeyToGroupIdOp key_to_group_id_op, int pivot, rmm::cuda_stream_view stream_view)#
template<typename ValueIterator, typename ValueToGroupIdOp>
void mem_frugal_groupby(ValueIterator value_first, ValueIterator value_last, ValueToGroupIdOp value_to_group_id_op, int num_groups, size_t mem_frugal_threshold, rmm::cuda_stream_view stream_view)#
template<typename KeyIterator, typename ValueIterator, typename KeyToGroupIdOp>
void mem_frugal_groupby(KeyIterator key_first, KeyIterator key_last, ValueIterator value_first, KeyToGroupIdOp key_to_group_id_op, int num_groups, size_t mem_frugal_threshold, rmm::cuda_stream_view stream_view)#
template<typename TupleType, std::size_t... Is>
size_t sum_thrust_tuple_element_sizes(std::index_sequence<Is...>)#
template<typename TupleType, std::size_t... Is>
size_t min_thrust_tuple_element_sizes(std::index_sequence<Is...>)#
template<typename TupleType, std::size_t... Is>
size_t max_thrust_tuple_element_sizes(std::index_sequence<Is...>)#
template<typename TupleType, std::size_t... Is>
auto thrust_tuple_to_std_tuple(TupleType tup, std::index_sequence<Is...>)#
template<typename TupleType, std::size_t... Is>
auto std_tuple_to_thrust_tuple(TupleType tup, std::index_sequence<Is...>)#
template<typename TupleType, std::size_t... Is>
TupleType thrust_tuple_of_arithmetic_numeric_limits_lowest(std::index_sequence<Is...>)#
template<typename TupleType, std::size_t... Is>
TupleType thrust_tuple_of_arithmetic_numeric_limits_max(std::index_sequence<Is...>)#

变量

__global__ int *restrict childd
__global__ int *restrict int *restrict massd
__global__ int *restrict int *restrict float *restrict posxd
__global__ int *restrict int *restrict float *restrict float *restrict posyd
__global__ int *restrict int *restrict float *restrict float *restrict float *restrict maxxd
__global__ int *restrict int *restrict float *restrict float *restrict float *restrict float *restrict maxyd
__global__ int *restrict int *restrict float *restrict float *restrict float *restrict float *restrict float *restrict minxd
__global__ int *restrict int *restrict float *restrict float *restrict float *restrict float *restrict float *restrict float *restrict minyd
__global__ int *restrict int *restrict float *restrict float *restrict float *restrict float *restrict float *restrict float *restrict const int FOUR_NNODES
__global__ int *restrict int *restrict float *restrict float *restrict float *restrict float *restrict float *restrict float *restrict const int const int NNODES
__global__ int *restrict int *restrict float *restrict float *restrict float *restrict float *restrict float *restrict float *restrict const int const int const int N
__global__ int *restrict int *restrict float *restrict float *restrict float *restrict float *restrict float *restrict float *restrict const int const int const int unsigned *restrict limiter   = 0
__global__ int *restrict int *restrict float *restrict float *restrict float *restrict float *restrict float *restrict float *restrict const int const int const int unsigned *restrict float *restrict radiusd  {float val, minx, maxx, miny, maxy
__shared__ float sminx [THREADS1]  = minx
__shared__ float smaxx [THREADS1]  = maxx
__shared__ float sminy [THREADS1]  = miny
__shared__ float smaxy [THREADS1]  = maxy
minx   = maxx = posxd[0]
miny   = maxy = posyd[0]
const int i = threadIdx.x#
const int inc = THREADS1 * gridDim.x#
__global__ const int const int FOUR_N  {const int inc = blockDim.x * gridDim.x
int k = (FOUR_N & -32) + threadIdx.x + blockIdx.x * blockDim.x#
__global__ const float *restrict const float *restrict const int const int int *restrict maxdepthd  {__shared__ int pos[THREADS5], node[THREADS5]
__global__ const float *restrict const float *restrict const int const int int *restrict int *restrict bottomd  {const int bottom = bottomd[0]
float x#
float y#
float r#
float px#
float py#
int ch#
int n#
int locked#
int patch#
const float radius = radiusd[0]#
const float rootx = posxd[NNODES]#
const float rooty = posyd[NNODES]#
int localmaxdepth = 1#
int skip = 1#
float cm#
__shared__ int child [THREADS3 *4]
__shared__ int mass [THREADS3 *4]
const int bottom = bottomd[0]#
const int restart = k#
int j = 0#
__global__ const int *restrict countd
__global__ const int *restrict volatile int *restrict startd
const int dec = blockDim.x * gridDim.x#
int start#
__global__ const float theta
__global__ const float const float epssqd
__global__ const float const float const int *restrict sortd
__global__ const float const float const int *restrict const int *restrict const int *restrict const float *restrict const float *restrict float *restrict velxd
__global__ const float const float const int *restrict const int *restrict const int *restrict const float *restrict const float *restrict float *restrict float *restrict velyd
__global__ const float const float const int *restrict const int *restrict const int *restrict const float *restrict const float *restrict float *restrict float *restrict const float theta_squared
__global__ const float const float const int *restrict const int *restrict const int *restrict const float *restrict const float *restrict float *restrict float *restrict const float const int const int const int const float *restrict radiusd_squared
__shared__ float dq [THREADS5]  = dq[diff]
const int sbase = (threadIdx.x / 32) * 32#
const bool SBASE_EQ_THREAD = (sbase == threadIdx.x)#
const int diff = threadIdx.x - sbase#
const int MAX_SIZE = FOUR_NNODES + 4#
__global__ float *restrict Y_y
__global__ float *restrict const float *restrict attract_x
__global__ float *restrict const float *restrict const float *restrict attract_y
__global__ float *restrict const float *restrict const float *restrict const float *restrict repel_x
__global__ float *restrict const float *restrict const float *restrict const float *restrict const float *restrict repel_y
__global__ float *restrict const float *restrict const float *restrict const float *restrict const float *restrict float *restrict old_dx
__global__ float *restrict const float *restrict const float *restrict const float *restrict const float *restrict float *restrict float *restrict old_dy
__global__ float *restrict const float *restrict const float *restrict const float *restrict const float *restrict float *restrict float *restrict const float *restrict swinging
__global__ float *restrict const float *restrict const float *restrict const float *restrict const float *restrict float *restrict float *restrict const float *restrict const float speed
int32_t constexpr extract_transform_if_v_frontier_e_kernel_block_size = 512#
int32_t constexpr per_v_transform_reduce_e_kernel_block_size = 256#
int32_t constexpr per_v_transform_reduce_e_kernel_high_degree_reduce_any_block_size = 128#
int32_t constexpr sample_and_compute_local_nbr_indices_block_size = 256#
size_t constexpr compute_valid_local_nbr_count_inclusive_sum_local_degree_threshold = packed_bools_per_word() * size_t{4}#
size_t constexpr compute_valid_local_nbr_count_inclusive_sum_mid_local_degree_threshold = packed_bools_per_word() * static_cast<size_t>(raft::warp_size()) * size_t{4}#
size_t constexpr compute_valid_local_nbr_count_inclusive_sum_high_local_degree_threshold = packed_bools_per_word() * static_cast<size_t>(sample_and_compute_local_nbr_indices_block_size) * size_t{4}#
int32_t constexpr transform_v_frontier_e_kernel_block_size = 128#
int32_t constexpr transform_e_kernel_block_size = 512#
int32_t constexpr transform_reduce_e_kernel_block_size = 128#
int32_t constexpr transform_reduce_e_by_src_dst_key_kernel_block_size = 128#
int32_t constexpr update_v_frontier_from_outgoing_e_kernel_block_size = 512#
int32_t constexpr decompress_edge_partition_block_size = 1024#
double constexpr edge_partition_src_dst_property_values_kv_pair_fill_ratio_threshold = 0.1#
double constexpr hypersparse_threshold_ratio = 0.5#
size_t constexpr low_degree_threshold{raft::warp_size()}#
size_t constexpr mid_degree_threshold{1024}#
size_t constexpr num_sparse_segments_per_vertex_partition = {3}#
size_t cache_line_size = 128#
template<typename vertex_t, typename VertexValueOutputIterator>
struct accumulate_vertex_property_t#
template<typename vertex_t, typename bias_t>
struct biased_random_walk_e_bias_op_t#
template<typename vertex_t, typename weight_t>
struct biased_sample_edges_op_t#
template<typename weight_t>
struct biased_selector#
template<typename edge_t>
struct call_const_true_e_op_t#
template<typename GraphViewType, typename key_t, typename EdgePartitionSrcValueInputWrapper, typename EdgePartitionDstValueInputWrapper, typename EdgePartitionEdgeValueInputWrapper, typename EdgeOp>
struct call_e_op_t#
template<typename GraphViewType, typename key_t, typename EdgePartitionSrcValueInputWrapper, typename EdgePartitionDstValueInputWrapper, typename EdgePartitionEdgeValueInputWrapper, typename EdgeOp>
struct call_e_op_with_key_t#
template<typename GraphViewType, typename VertexValueInputIterator, typename EdgeValueInputIterator, typename IntersectionOp, typename VertexPairIndexIterator, typename VertexPairIterator, typename VertexPairValueOutputIterator>
struct call_intersection_op_t#
template<typename vertex_t, typename edge_value_t, typename e_op_result_t, typename EdgePartitionDeviceView, typename EdgeMajorValueMap, typename EdgePartitionMajorValueInputWrapper, typename EdgeMinorKeyValueMap, typename KeyAggregatedEdgeOp>
struct call_key_aggregated_e_op_t#
template<typename PackedBoolIterator, typename T>
struct check_bit_set_t#
template<typename vertex_t>
struct check_edge_src_and_dst_t#
template<typename T>
struct check_in_range_t#
template<typename key_t>
struct check_invalid_bucket_idx_t#
template<typename edge_t, typename T>
struct check_invalid_t#
template<typename T>
struct check_out_of_range_t#
template<typename vertex_t, typename weight_t>
struct cluster_update_op_t#
template<typename vertex_t, typename edge_t, typename weight_t, typename index_t>
struct col_indx_extract_t#
template<typename VertexPairIterator>
struct compute_chunk_id_t#
template<typename vertex_t>
struct compute_edge_partition_id_from_ext_edge_endpoints_t#
template<typename vertex_t>
struct compute_edge_partition_id_from_int_edge_endpoints_t#
template<typename vertex_t>
struct compute_gpu_id_from_ext_edge_endpoints_t#
template<typename edge_t>
struct compute_gpu_id_from_ext_edge_id_t#
template<typename vertex_t>
struct compute_gpu_id_from_ext_vertex_t#
template<typename vertex_t>
struct compute_gpu_id_from_int_edge_endpoints_t#
template<typename vertex_t>
struct compute_gpu_id_from_int_vertex_t#
template<typename GroupIdIterator>
struct compute_group_id_count_pair_t#
template<typename vertex_t>
struct compute_local_edge_partition_id_from_ext_edge_endpoints_t#
template<typename vertex_t>
struct compute_local_edge_partition_id_from_int_edge_endpoints_t#
template<typename VertexPairIterator>
struct compute_local_edge_partition_id_t#
struct compute_local_edge_partition_major_range_vertex_partition_id_t#
struct compute_local_edge_partition_minor_range_vertex_partition_id_t#
struct compute_local_nbr_count_per_rank_t#
template<typename value_t>
struct compute_local_value_displacements_and_global_value_t#
template<typename vertex_t>
struct compute_max#
template<typename vertex_t, bool is_multi_gpu>
struct compute_max_distance#
template<typename TupleType, size_t I, size_t N>
struct compute_thrust_tuple_element_sizes_impl#
template<typename TupleType, size_t I>
struct compute_thrust_tuple_element_sizes_impl<TupleType, I, I>#
template<typename vertex_t>
struct compute_vertex_partition_id_from_ext_vertex_t#
template<typename vertex_t>
struct compute_vertex_partition_id_from_int_vertex_t#
template<typename key_t, typename vertex_t, typename src_value_t, typename dst_value_t, typename e_value_t, bool store_transposed>
struct const_true_e_op_t#
template<typename GraphViewType, typename EdgeSrcValueInputWrapper, typename EdgeDstValueInputWrapper, typename EdgeValueInputWrapper, typename key_t>
struct constant_bias_e_op_t#
template<typename InputIterator, typename OutputIterator, typename edge_type_t, typename value_t>
struct convert_per_type_value_key_pair_to_shuffle_t#
template<typename InputIterator, typename OutputIterator, typename value_t>
struct convert_value_key_pair_to_shuffle_t#
template<typename vertex_t, typename index_t>
struct coo_convertor_t#
template<typename FirstElementToIdxMap, typename SecondElementToIdxMap, typename VertexPairIterator, typename vertex_t, typename edge_t, typename edge_partition_e_input_device_view_t, typename optional_property_buffer_view_t, typename optional_property_buffer_mutable_view_t, bool multi_gpu>
struct copy_intersecting_nbrs_and_update_intersection_size_t#
template<typename weight_t>
struct cosine_functor_t#
template<typename vertex_t, typename VertexValueInputIterator, typename VertexOp>
struct count_if_call_v_op_t#
struct count_t#
template<typename vertex_t, typename weight_t>
struct count_updown_moves_op_t#
template<typename edge_t>
struct count_valids_t#
struct decrement_position#
template<typename InputIterator, typename OutputIterator, size_t I, size_t N>
struct device_allgather_tuple_iterator_element_impl#
template<typename InputIterator, typename OutputIterator, size_t I>
struct device_allgather_tuple_iterator_element_impl<InputIterator, OutputIterator, I, I>#
template<typename InputIterator, typename OutputIterator, size_t I, size_t N>
struct device_allgatherv_tuple_iterator_element_impl#
template<typename InputIterator, typename OutputIterator, size_t I>
struct device_allgatherv_tuple_iterator_element_impl<InputIterator, OutputIterator, I, I>#
template<typename InputIterator, typename OutputIterator, size_t I, size_t N>
struct device_allreduce_tuple_iterator_element_impl#
template<typename InputIterator, typename OutputIterator, size_t I>
struct device_allreduce_tuple_iterator_element_impl<InputIterator, OutputIterator, I, I>#
template<typename InputIterator, typename OutputIterator, size_t I, size_t N>
struct device_bcast_tuple_iterator_element_impl#
template<typename InputIterator, typename OutputIterator, size_t I>
struct device_bcast_tuple_iterator_element_impl<InputIterator, OutputIterator, I, I>#
template<typename InputIterator, typename OutputIterator, size_t I, size_t N>
struct device_gatherv_tuple_iterator_element_impl#
template<typename InputIterator, typename OutputIterator, size_t I>
struct device_gatherv_tuple_iterator_element_impl<InputIterator, OutputIterator, I, I>#
template<typename InputIterator, typename OutputIterator, size_t I, size_t N>
struct device_irecv_tuple_iterator_element_impl#
template<typename InputIterator, typename OutputIterator, size_t I>
struct device_irecv_tuple_iterator_element_impl<InputIterator, OutputIterator, I, I>#
template<typename InputIterator, typename OutputIterator, size_t I, size_t N>
struct device_isend_tuple_iterator_element_impl#
template<typename InputIterator, typename OutputIterator, size_t I>
struct device_isend_tuple_iterator_element_impl<InputIterator, OutputIterator, I, I>#
template<typename InputIterator, typename OutputIterator, size_t I, size_t N>
struct device_multicast_sendrecv_tuple_iterator_element_impl#
template<typename InputIterator, typename OutputIterator, size_t I>
struct device_multicast_sendrecv_tuple_iterator_element_impl<InputIterator, OutputIterator, I, I>#
template<typename InputIterator, typename OutputIterator, size_t I, size_t N>
struct device_reduce_tuple_iterator_element_impl#
template<typename InputIterator, typename OutputIterator, size_t I>
struct device_reduce_tuple_iterator_element_impl<InputIterator, OutputIterator, I, I>#
template<typename InputIterator, typename OutputIterator, size_t I, size_t N>
struct device_sendrecv_tuple_iterator_element_impl#
template<typename InputIterator, typename OutputIterator, size_t I>
struct device_sendrecv_tuple_iterator_element_impl<InputIterator, OutputIterator, I, I>#
template<typename T>
struct divider_t#
class edge_endpoint_dummy_property_view_t#
template<typename vertex_t, typename T>
class edge_major_property_t#
template<typename vertex_t, typename ValueIterator, typename value_t = typename thrust::iterator_traits<ValueIterator>::value_type>
class edge_major_property_view_t#
template<typename vertex_t, typename T>
class edge_minor_property_t#
template<typename vertex_t, typename ValueIterator, typename value_t = typename thrust::iterator_traits<ValueIterator>::value_type>
class edge_minor_property_view_t#
template<typename key_t, typename vertex_t, typename src_value_t, typename dst_value_t, typename e_value_t, typename EdgeOp, typename Enable = void>
struct edge_op_result_type#
template<typename key_t, typename vertex_t, typename src_value_t, typename dst_value_t, typename e_value_t, typename EdgeOp>
struct edge_op_result_type<key_t, vertex_t, src_value_t, dst_value_t, e_value_t, EdgeOp, std::enable_if_t<std::is_invocable_v<EdgeOp, key_t, vertex_t, src_value_t, dst_value_t, e_value_t>>>#
template<typename vertex_t, typename edge_t>
class edge_partition_device_view_base_t#

派生类 cugraph::edge_partition_device_view_t< vertex_t, edge_t, multi_gpu, std::enable_if_t< multi_gpu > >, cugraph::edge_partition_device_view_t< vertex_t, edge_t, multi_gpu, std::enable_if_t<!multi_gpu > >

template<typename edge_t>
class edge_partition_edge_dummy_property_device_view_t#
template<typename edge_t, typename ValueIterator, typename value_t = typename thrust::iterator_traits<ValueIterator>::value_type>
class edge_partition_edge_property_device_view_t#
template<typename vertex_t>
class edge_partition_endpoint_dummy_property_device_view_t#
template<typename vertex_t, typename ValueIterator, typename value_t = typename thrust::iterator_traits<ValueIterator>::value_type>
class edge_partition_endpoint_property_device_view_t#
template<typename vertex_t, typename edge_t>
class edge_partition_view_base_t#

派生类 cugraph::edge_partition_view_t< vertex_t, edge_t, multi_gpu, std::enable_if_t< multi_gpu > >, cugraph::edge_partition_view_t< vertex_t, edge_t, multi_gpu, std::enable_if_t<!multi_gpu > >

template<typename edge_t, typename weight_t, typename edge_type_t, typename edge_time_t>
struct edge_value_compare_t#
template<typename vertex_t, typename edge_t, typename EdgeIterator>
struct extract_p_r_q_r#
template<typename vertex_t, typename edge_t, typename EdgeIterator>
struct extract_q_r#
template<typename GraphViewType, typename EdgePartitionEdgeMaskWrapper, typename VertexIterator>
struct find_nth_valid_nbr_idx_t#
template<typename vertex_t>
struct find_unused_id_t#
template<typename vertex_t, typename edge_property_value_t, typename optional_property_buffer_view_t, typename optional_property_buffer_mutable_view_t>
struct gatherv_indices_t#
template<typename vertex_t, typename edge_t>
class graph_base_t#

派生类 cugraph::graph_t< vertex_t, edge_t, store_transposed, multi_gpu, std::enable_if_t< multi_gpu > >, cugraph::graph_t< vertex_t, edge_t, store_transposed, multi_gpu, std::enable_if_t<!multi_gpu > >, cugraph::graph_view_t< vertex_t, edge_t, store_transposed, multi_gpu, std::enable_if_t< multi_gpu > >, cugraph::graph_view_t< vertex_t, edge_t, store_transposed, multi_gpu, std::enable_if_t<!multi_gpu > >

template<typename vertex_t>
struct hash_and_mod_src_dst_pair_t#
template<typename vertex_t>
struct hash_src_dst_pair_t#
template<typename TupleType, size_t I, size_t N>
struct host_allreduce_tuple_scalar_element_impl#
template<typename TupleType, size_t I>
struct host_allreduce_tuple_scalar_element_impl<TupleType, I, I>#
template<typename TupleType, size_t I, size_t N>
struct host_reduce_tuple_scalar_element_impl#
template<typename TupleType, size_t I>
struct host_reduce_tuple_scalar_element_impl<TupleType, I, I>#
template<typename VertexPairIterator>
struct indirection_compare_less_t#
template<typename index_t, typename Iterator>
struct indirection_if_idx_valid_t#
template<typename index_t, typename Iterator>
struct indirection_t#
template<typename vertex_t, typename property_t>
struct induced_subgraph_unweighted_edge_op#
template<typename vertex_t, typename property_t>
struct induced_subgraph_unweighted_pred_op#
template<typename vertex_t, typename weight_t, typename property_t>
struct induced_subgraph_weighted_edge_op#
template<typename vertex_t, typename weight_t, typename property_t>
struct induced_subgraph_weighted_pred_op#
template<typename vertex_t, typename src_value_t, typename dst_value_t, typename IntersectionOp, typename Enable = void>
struct intersection_op_result_type#
template<typename vertex_t, typename src_value_t, typename dst_value_t, typename IntersectionOp>
struct intersection_op_result_type<vertex_t, src_value_t, dst_value_t, IntersectionOp, std::enable_if_t<std::is_invocable_v<IntersectionOp, vertex_t, vertex_t, src_value_t, dst_value_t, raft::device_span<vertex_t const>>>>#
template<typename vertex_t>
struct invalidate_if_not_first_in_run_t#
template<typename T>
struct is_equal_t#
template<typename Iterator>
struct is_first_in_run_t#
template<typename vertex_t>
struct is_invalid_input_vertex_pair_t#
template<typename T>
struct is_not_equal_t#
template<typename TupleType, size_t I, size_t N>
struct is_thrust_tuple_of_arithemetic_impl#
template<typename TupleType, size_t I>
struct is_thrust_tuple_of_arithemetic_impl<TupleType, I, I>#
template<typename vertex_t>
struct is_valid_vertex_t#
template<typename Iterator, typename default_t, typename Enable = void>
struct iterator_value_type_or_default_t#
template<typename Iterator, typename default_t>
struct iterator_value_type_or_default_t<Iterator, default_t, std::enable_if_t<std::is_same_v<Iterator, void*>>>#
template<typename Iterator, typename default_t>
struct iterator_value_type_or_default_t<Iterator, default_t, std::enable_if_t<!std::is_same_v<Iterator, void*>>>#
template<typename weight_t>
struct jaccard_functor_t#
template<typename vertex_t, typename weight_t>
struct key_aggregated_edge_op_t#
template<typename KeyIterator>
struct key_binary_search_contains_op_t#
template<typename ViewType>
struct key_binary_search_store_device_view_t#
template<typename key_t>
class key_binary_search_store_t#
template<typename KeyIterator>
class key_binary_search_store_view_t#
template<typename ViewType>
struct key_cuco_store_contains_device_view_t#
template<typename ViewType>
struct key_cuco_store_insert_device_view_t#
template<typename key_t>
class key_cuco_store_t#
template<typename key_t>
class key_cuco_store_view_t#
template<typename key_type, typename KeyToGroupIdOp>
struct key_group_id_less_t#
template<typename KeyIterator>
struct kv_binary_search_contains_op_t#
template<typename KeyIterator, typename ValueIterator>
struct kv_binary_search_find_op_t#
template<typename ViewType>
struct kv_binary_search_store_device_view_t#
template<typename key_t, typename value_t>
class kv_binary_search_store_t#
template<typename KeyIterator, typename ValueIterator>
class kv_binary_search_store_view_t#
template<typename RefType, typename key_t, typename value_t>
struct kv_cuco_insert_and_assign_t#
template<typename RefType, typename KeyIterator>
struct kv_cuco_insert_and_increment_t#
template<typename RefType, typename KeyIterator, typename StencilIterator, typename PredOp>
struct kv_cuco_insert_if_and_increment_t#
template<typename ViewType>
struct kv_cuco_store_find_device_view_t#
template<typename key_t, typename value_t>
class kv_cuco_store_t#
template<typename key_t, typename ValueIterator>
class kv_cuco_store_view_t#
template<typename key_type, typename value_type, typename KeyToGroupIdOp>
struct kv_pair_group_id_greater_equal_t#
template<typename key_type, typename value_type, typename KeyToGroupIdOp>
struct kv_pair_group_id_less_t#
template<typename vertex_t, typename weight_t, typename cluster_value_t>
struct leiden_key_aggregated_edge_op_t#
template<typename vertex_t, typename edge_t, typename return_type_t, bool multi_gpu, bool use_dcs>
struct local_degree_op_t#
template<typename vertex_t, typename edge_t, typename return_type_t, bool multi_gpu, bool use_dcs, typename MaskIterator>
struct local_degree_with_mask_op_t#
template<typename vertex_t>
struct major_to_group_idx_t#
template<typename vertex_t, bool is_multi_gpu>
struct map_index_to_path_offset#
template<typename EdgePartitionDstKeyInputWrapper>
struct minor_to_key_t#
template<typename T>
struct multiplier_t#
template<typename T>
struct multiply_and_add_t#
template<typename vertex_t, typename bias_t, typename weight_t>
struct node2vec_random_walk_e_bias_op_t#
template<typename vertex_t, typename weight_t>
struct node2vec_sample_edges_op_t#
template<typename weight_t>
struct node2vec_selector#
template<typename Iterator, typename Enable = void>
struct optional_dataframe_buffer_iterator_value_type_t#
template<typename Iterator>
struct optional_dataframe_buffer_iterator_value_type_t<Iterator, std::enable_if_t<std::is_same_v<Iterator, void*>>>#
template<typename Iterator>
struct optional_dataframe_buffer_iterator_value_type_t<Iterator, std::enable_if_t<!std::is_same_v<Iterator, void*>>>#
template<typename T>
struct optional_dataframe_buffer_type#
template<typename weight_t>
struct overlap_functor_t#
template<typename BoolIterator>
struct pack_bool_t#
template<typename vertex_t>
struct pair_to_binary_partition_id_t#
template<typename FirstElementToIdxMap, typename SecondElementToIdxMap, typename vertex_t, typename edge_t, bool multi_gpu>
struct pick_min_degree_t#
template<typename vertex_t, typename edge_t, typename weight_t, typename random_engine_t = rrandom_gen_t<vertex_t, edge_t>, typename index_t = edge_t>
struct random_walker_t#

抽象化了 RW 初始化、步进和停止功能的类。算法概述如下:

(1) 顶点集合并到 d_coalesced_v 中,权重集合合并到 d_coalesced_w 中;即,分配两个合并向量的大小分别为 num_paths * max_depth 和 num_paths * (max_depth -1)(因为每条路径的边数比顶点数少一);对于每个 i*max_depth 条目 (i=0,,,,num_paths-1),d_coalesced_v 被初始化为相应的起始顶点;(2) d_sizes 维护每条路径的当前大小;注意,如果路径到达汇点顶点,它可能会提前结束;(3) d_crt_out_degs 维护路径中每个最新顶点的出度;即,如果 N(v) := 从 v 出发的目的顶点集合,则该向量存储每条路径中最后一个 v 的 |N(v)|;即,对于 i ∈ {0,…, num_paths-1},d_crt_out_degs[i] = out-degree( d_coalesced_v[i*max_depth + d_sizes[i]-1] );(4) 在每个步骤中生成一组 num_paths 个介于 [0,1] 之间的浮点数;然后它们被转换为 {0,…d_crt_out_degs[i]-1} 中的 *索引* k;(5) 下一个顶点 v 被选为第 k 个出邻居:next(v) = N(v)[k];(6) d_sizes 相应地递增;即,对于那些其相应最后一个顶点出度 > 0 的路径;(7) 然后将 next(v) 和 (v, next(v)) 的相应权重存储到其相应合并向量中的适当位置;(8) 该类的客户端(random_walks() 函数)然后重复此过程 max_depth 次或直到所有路径都到达汇点为止;即,d_crt_out_degs = {0, 0,…,0},以先发生者为准;(9) 最后进行一些后处理 (stop()) 以从两个合并向量中移除未使用的条目;(10) 然后返回由两个合并向量和 d_sizes 组成的三元组;

template<typename edge_t>
struct rebase_offset_t#
template<typename vertex_t, typename weight_t>
struct reduce_op_t#
template<typename ReduceOp, typename T>
struct reduce_with_init_t#
struct reorder_group_count_t#
template<typename vertex_t, typename weight_t>
struct return_edge_weight_t#
struct return_edges_with_properties_e_op#
template<typename vertex_t, typename weight_t>
struct return_one_t#
template<bool use_invalid_value>
struct return_value_compute_offset_t#
template<typename vertex_t, typename edge_t, typename seed_t = uint64_t, typename real_t = float, typename index_t = edge_t>
struct rrandom_gen_t#
template<typename vertex_t, typename bias_t>
struct sample_edge_biases_op_t#
template<typename vertex_t>
struct sample_edges_op_t#
template<typename vertex_t, typename edge_t>
struct search_and_increment_degree_t#
template<typename vertex_t, typename ValueIterator>
struct segmented_fill_t#
template<typename vertex_t>
struct sg_lookup_predecessor#
template<typename T>
struct shift_left_t#
template<typename T>
struct shift_right_t#
struct shuffle_index_compute_offset_t#
template<typename label_t>
struct shuffle_to_output_comm_rank_t#
template<typename weight_t>
struct sorensen_functor_t#
template<typename edge_t>
struct strided_accumulate_t#
template<typename T>
struct strided_sum_t#
template<typename vertex_t, typename edge_t, bool multi_gpu, typename result_t, typename TransformOp, typename ReduceOp, typename PredOp, typename ResultValueOutputIteratorOrWrapper>
struct transform_and_atomic_reduce_t#
template<typename GraphViewType, typename KeyIterator, typename LocalNbrIdxIterator, typename EdgePartitionSrcValueInputWrapper, typename EdgePartitionDstValueInputWrapper, typename EdgePartitionEdgeValueInputWrapper, typename EdgeOp, typename T>
struct transform_local_nbr_indices_t#
template<typename vertex_t, typename VertexValueInputIterator, typename VertexOp, typename T>
struct transform_reduce_call_v_op_t#
template<typename key_t, typename payload_t, typename vertex_t, typename src_value_t, typename dst_value_t, typename e_value_t, typename EdgeOp>
struct transform_reduce_if_v_frontier_call_e_op_t#
template<typename vertex_t, typename edge_value_t>
struct tuple_to_minor_comm_rank_t#
template<typename input_t, typename output_t>
struct typecast_t#
template<typename weight_t>
struct uniform_selector#
template<bool check_edge_mask, typename GraphViewType, typename EdgePartitionSrcValueInputWrapper, typename EdgePartitionDstValueInputWrapper, typename EdgePartitionEdgeValueInputWrapper, typename EdgePartitionEdgeMaskWrapper, typename EdgeOp, typename EdgeValueOutputWrapper>
struct update_e_value_t#
template<typename vertex_t, typename edge_t, typename EdgeIterator>
struct update_edges_p_r_q_r_num_triangles#
template<typename InputKeyIterator, typename key_t>
struct update_keep_flag_t#
template<typename vertex_t>
struct update_paths#
template<typename vertex_t, typename edge_t, bool multi_gpu>
struct update_rx_major_local_degree_t#
template<typename vertex_t, typename edge_t, typename edge_partition_e_input_device_view_t, typename optional_property_buffer_mutable_view_t, bool multi_gpu>
struct update_rx_major_local_nbrs_t#
template<typename TupleType, size_t I, size_t N>
struct update_tuple_from_vector_of_tuple_scalar_elements_impl#
template<typename TupleType, size_t I>
struct update_tuple_from_vector_of_tuple_scalar_elements_impl<TupleType, I, I>#
template<typename vertex_t, typename VertexValueInputIterator, typename VertexValueOutputIterator, typename VertexOp, typename key_t, typename payload_t>
struct update_v_frontier_call_v_op_t#
template<typename vertex_t, typename VertexValueInputIterator, typename VertexValueOutputIterator, typename VertexOp, typename key_t>
struct update_v_frontier_call_v_op_t<vertex_t, VertexValueInputIterator, VertexValueOutputIterator, VertexOp, key_t, void>#
template<typename TupleType, size_t I, size_t N>
struct update_vector_of_tuple_scalar_elements_from_tuple_impl#
template<typename TupleType, size_t I>
struct update_vector_of_tuple_scalar_elements_from_tuple_impl<TupleType, I, I>#
template<typename value_type, typename ValueToGroupIdOp>
struct value_group_id_greater_equal_t#
template<typename value_type, typename ValueToGroupIdOp>
struct value_group_id_less_t#
template<typename vertex_t, bool multi_gpu>
struct vertex_local_offset_t#
template<typename vertex_t>
class vertex_partition_device_view_base_t#

由此继承的类: cugraph::vertex_partition_device_view_t< vertex_t, multi_gpu, std::enable_if_t< multi_gpu > >, cugraph::vertex_partition_device_view_t< vertex_t, multi_gpu, std::enable_if_t<!multi_gpu > >

template<typename vertex_t>
class vertex_partition_view_base_t#

由此继承的类: cugraph::vertex_partition_view_t< vertex_t, multi_gpu, std::enable_if_t< multi_gpu > >, cugraph::vertex_partition_view_t< vertex_t, multi_gpu, std::enable_if_t<!multi_gpu > >

namespace original#

类型别名

template<typename T>
using device_vec_t = rmm::device_uvector<T>#
template<typename T>
using device_v_it = typename device_vec_t<T>::iterator#

函数

template<typename value_t>
value_t *raw_ptr(device_vec_t<value_t> &dv)#
template<typename value_t>
value_t const *raw_const_ptr(device_vec_t<value_t> const &dv)#
template<typename value_t>
value_t const *raw_const_ptr(device_const_vector_view<value_t> &dv)#
template<typename vertex_t, typename edge_t, typename weight_t, typename real_t>
struct biased_selector_t#
struct sampler_t#
template<typename seed_t>
struct clock_seeding_t#
template<typename value_t, typename index_t = size_t>
struct device_const_vector_view#
template<typename seed_t>
struct fixed_seeding_t#
struct horizontal_traversal_t#
template<typename vertex_t, typename edge_t, typename weight_t, typename real_t>
struct node2vec_selector_t#
struct sampler_t#
template<typename vertex_t, typename edge_t, typename weight_t, typename real_t>
struct uniform_selector_t#
struct sampler_t#
struct vertical_traversal_t#
namespace ext_raft#

Nvgraph 平衡剪枝聚类函数的包装函数。

抛出 cugraph::logic_error:

发生错误时。

模板参数
  • VT – 顶点标识符的类型。支持的值:int(有符号,32 位)

  • ET – 边标识符的类型。支持的值:int(有符号,32 位)

  • WT – 边权重的类型。支持的值:float 或 double。

参数 graph:

[in] 输入图对象 (CSR)

参数 num_clusters:

[in] 期望的簇数量

参数 num_eigen_vects:

[in] 要使用的特征向量数量

参数 evs_tolerance:

[in] 用于特征值求解器的容差

参数 evs_max_iter:

[in] 特征值求解器的最大迭代次数

参数 kmean_tolerance:

[in] 用于 kmeans 求解器的容差

参数 kmean_max_iter:

[in] k-means 求解器的最大迭代次数

参数 clustering:

[out] 指向设备内存的指针,结果聚类将存储在此

函数

template<typename VT, typename ET, typename WT>
void balancedCutClustering(legacy::GraphCSRView<VT, ET, WT> const &graph, VT num_clusters, VT num_eigen_vects, WT evs_tolerance, int evs_max_iter, WT kmean_tolerance, int kmean_max_iter, VT *clustering)#
template void balancedCutClustering< int, int, float > (legacy::GraphCSRView< int, int, float > const &, int, int, float, int, float, int, int *)
template void balancedCutClustering< int, int, double > (legacy::GraphCSRView< int, int, double > const &, int, int, double, int, double, int, int *)
template void spectralModularityMaximization< int, int, float > (legacy::GraphCSRView< int, int, float > const &, int, int, float, int, float, int, int *)
template void spectralModularityMaximization< int, int, double > (legacy::GraphCSRView< int, int, double > const &, int, int, double, int, double, int, int *)
template void analyzeClustering_modularity< int, int, float > (legacy::GraphCSRView< int, int, float > const &, int, int const *, float *)
template void analyzeClustering_modularity< int, int, double > (legacy::GraphCSRView< int, int, double > const &, int, int const *, double *)
template void analyzeClustering_edge_cut< int, int, float > (legacy::GraphCSRView< int, int, float > const &, int, int const *, float *)
template void analyzeClustering_edge_cut< int, int, double > (legacy::GraphCSRView< int, int, double > const &, int, int const *, double *)
template void analyzeClustering_ratio_cut< int, int, float > (legacy::GraphCSRView< int, int, float > const &, int, int const *, float *)
template void analyzeClustering_ratio_cut< int, int, double > (legacy::GraphCSRView< int, int, double > const &, int, int const *, double *)
namespace detail#

函数

template<typename vertex_t, typename edge_t, typename weight_t>
void balancedCutClustering_impl(legacy::GraphCSRView<vertex_t, edge_t, weight_t> const &graph, vertex_t n_clusters, vertex_t n_eig_vects, weight_t evs_tolerance, int evs_max_iter, weight_t kmean_tolerance, int kmean_max_iter, vertex_t *clustering, weight_t *eig_vals, weight_t *eig_vects)#
template<typename vertex_t, typename edge_t, typename weight_t>
void spectralModularityMaximization_impl(legacy::GraphCSRView<vertex_t, edge_t, weight_t> const &graph, vertex_t n_clusters, vertex_t n_eig_vects, weight_t evs_tolerance, int evs_max_iter, weight_t kmean_tolerance, int kmean_max_iter, vertex_t *clustering, weight_t *eig_vals, weight_t *eig_vects)#
template<typename vertex_t, typename edge_t, typename weight_t>
void analyzeModularityClustering_impl(legacy::GraphCSRView<vertex_t, edge_t, weight_t> const &graph, int n_clusters, vertex_t const *clustering, weight_t *modularity)#
template<typename vertex_t, typename edge_t, typename weight_t>
void analyzeBalancedCut_impl(legacy::GraphCSRView<vertex_t, edge_t, weight_t> const &graph, vertex_t n_clusters, vertex_t const *clustering, weight_t *edgeCut, weight_t *ratioCut)#
namespace internals#
class Callback#

由此继承的类: cugraph::internals::GraphBasedDimRedCallback

class GraphBasedDimRedCallback : public cugraph::internals::Callback#
namespace legacy#

枚举

enum class PropType#

enumerator PROP_UNDEF#
enumerator PROP_FALSE#
enumerator PROP_TRUE#
enum class DegreeDirection#

enumerator IN_PLUS_OUT#
enumerator IN#

计算入度和出度之和

enumerator OUT#

计算入度

enumerator DEGREE_DIRECTION_COUNT#

计算出度

template<typename vertex_t, typename edge_t, typename weight_t>
class GraphCompressedSparseBase#
#include <graph.hpp>

以 CSR (Compressed Sparse Row) 格式或 CSC (Compressed Sparse Column) 格式存储的构造图的基类。

模板参数
  • vertex_t – 顶点 ID 类型

  • edge_t – 边 ID 类型

  • weight_t – 权重类型

由此继承的类: cugraph::legacy::GraphCSR< vertex_t, edge_t, weight_t >

template<typename vertex_t, typename edge_t, typename weight_t>
class GraphCompressedSparseBaseView : public cugraph::legacy::GraphViewBase<vertex_t, edge_t, weight_t>#
#include <graph.hpp>

以 CSR (Compressed Sparse Row) 格式或 CSC (Compressed Sparse Column) 格式存储的图的基类。

模板参数
  • vertex_t – 顶点 ID 类型

  • edge_t – 边 ID 类型

  • weight_t – 权重类型

由此继承的类: cugraph::legacy::GraphCSRView< vertex_t, edge_t, weight_t >

公共成员

edge_t *offsets = {nullptr}#

CSR 偏移量。

vertex_t *indices = {nullptr}#

CSR 索引。

template<typename vertex_t, typename edge_t, typename weight_t>
class GraphCOO#
#include <graph.hpp>

以 COO (COOrdinate) 格式存储的构造图。

此类别将存储 src_indices 和 dst_indicies (直到移动)

模板参数
  • vertex_t – 顶点 ID 类型

  • edge_t – 边 ID 类型

  • weight_t – 权重类型

template<typename vertex_t, typename edge_t, typename weight_t>
struct GraphCOOContents#
#include <graph.hpp>

TODO:更改此处,接管提供的 COO 格式图数组的所有权。

参数 source_indices:

此大小为 E(边数)的数组包含每条边的源索引。索引必须在 [0, V-1] 范围内。

参数 destination_indices:

此大小为 E(边数)的数组包含每条边的目的索引。索引必须在 [0, V-1] 范围内。

参数 edge_data:

此大小为 E(边数)的数组包含每条边的权重。此数组可以为 null,在这种情况下,图被视为无权重图。

参数 number_of_vertices:

图中顶点的数量

参数 number_of_edges:

图中边的数量

template<typename vertex_t, typename edge_t, typename weight_t>
class GraphCOOView : public cugraph::legacy::GraphViewBase<vertex_t, edge_t, weight_t>#
#include <graph.hpp>

以 COO (COOrdinate) 格式存储的图。

模板参数
  • vertex_t – 顶点 ID 类型

  • edge_t – 边 ID 类型

  • weight_t – 权重类型

公有函数

inline GraphCOOView()#

默认构造函数。

公共成员

vertex_t *src_indices = {nullptr}#

行索引

vertex_t *dst_indices = {nullptr}#

列索引

template<typename vertex_t, typename edge_t, typename weight_t>
class GraphCSR : public cugraph::legacy::GraphCompressedSparseBase<vertex_t, edge_t, weight_t>#
#include <graph.hpp>

以 CSR (Compressed Sparse Row) 格式存储的构造图。

模板参数
  • vertex_t – 顶点 ID 类型

  • edge_t – 边 ID 类型

  • weight_t – 权重类型

template<typename vertex_t, typename edge_t, typename weight_t>
class GraphCSRView : public cugraph::legacy::GraphCompressedSparseBaseView<vertex_t, edge_t, weight_t>#
#include <graph.hpp>

以 CSR (Compressed Sparse Row) 格式存储的图。

模板参数
  • vertex_t – 顶点 ID 类型

  • edge_t – 边 ID 类型

  • weight_t – 权重类型

公有函数

inline GraphCSRView()#

默认构造函数。

struct GraphProperties#
template<typename vertex_t, typename edge_t, typename weight_t>
struct GraphSparseContents#
template<typename vertex_t, typename edge_t, typename weight_t>
class GraphViewBase#
#include <graph.hpp>

图的基类,除顶点和边外。

模板参数
  • vertex_t – 顶点 ID 类型

  • edge_t – 边 ID 类型

  • weight_t – 权重类型

由此继承的类: cugraph::legacy::GraphCOOView< vertex_t, edge_t, weight_t >, cugraph::legacy::GraphCompressedSparseBaseView< vertex_t, edge_t, weight_t >

公共成员

weight_t *edge_data#

边权重

template<typename edge_t>
struct invalid_edge_id : public cugraph::legacy::invalid_idx<edge_t>#
template<typename T, typename Enable = void>
struct invalid_idx#
template<typename T>
struct invalid_idx<T, typename std::enable_if_t<std::is_integral<T>::value && std::is_signed<T>::value>> : public std::integral_constant<T, -1>#
template<typename T>
struct invalid_idx<T, typename std::enable_if_t<std::is_integral<T>::value && std::is_unsigned<T>::value>> : public std::integral_constant<T, std::numeric_limits<T>::max()>#
template<typename vertex_t>
struct invalid_vertex_id : public cugraph::legacy::invalid_idx<vertex_t>#
namespace mtmg#

类型别名

template<typename edge_t, typename value_iterator_t>
using edge_property_view_t = detail::device_shared_wrapper_t<cugraph::edge_property_view_t<edge_t, value_iterator_t>>#

每个 GPU 的边属性对象。

template<typename vertex_t>
using renumber_map_view_t = detail::device_shared_device_span_t<vertex_t const>#

用于存储重新编号映射的 MTMG 设备范围。

函数

template<typename vertex_t, typename edge_t, typename weight_t, typename edge_type_t, typename edge_time_t, bool store_transposed, bool multi_gpu>
void create_graph_from_edgelist(handle_t const &handle, cugraph::mtmg::edgelist_t<vertex_t, weight_t, edge_t, edge_type_t, edge_time_t> &edgelist, graph_properties_t graph_properties, bool renumber, cugraph::mtmg::graph_t<vertex_t, edge_t, store_transposed, multi_gpu> &graph, std::optional<cugraph::mtmg::edge_property_t<cugraph::mtmg::graph_view_t<vertex_t, edge_t, store_transposed, multi_gpu>, weight_t>> &edge_weights, std::optional<cugraph::mtmg::edge_property_t<cugraph::mtmg::graph_view_t<vertex_t, edge_t, store_transposed, multi_gpu>, weight_t>> &edge_weights, std::optional<cugraph::mtmg::edge_property_t<cugraph::mtmg::graph_view_t<vertex_t, edge_t, store_transposed, multi_gpu>, edge_t>> &edge_ids, std::optional<cugraph::mtmg::edge_property_t<cugraph::mtmg::graph_view_t<vertex_t, edge_t, store_transposed, multi_gpu>, edge_type_t>> &edge_types, std::optional<cugraph::mtmg::edge_property_t<cugraph::mtmg::graph_view_t<vertex_t, edge_t, store_transposed, multi_gpu>, edge_type_t>> &edge_types, std::optional<cugraph::mtmg::edge_property_t<cugraph::mtmg::graph_view_t<vertex_t, edge_t, store_transposed, multi_gpu>, edge_time_t>> &edge_start_times, std::optional<cugraph::mtmg::edge_property_t<cugraph::mtmg::graph_view_t<vertex_t, edge_t, store_transposed, multi_gpu>, edge_time_t>> &edge_start_times, std::optional<cugraph::mtmg::edge_property_t<cugraph::mtmg::graph_view_t<vertex_t, edge_t, store_transposed, multi_gpu>, edge_time_t>> &edge_end_times, std::optional<cugraph::mtmg::renumber_map_t<vertex_t>> &renumber_map, bool do_expensive_check = false)#

从边列表创建 MTMG 图。

参数
  • handle[输入] 资源句柄

  • edgelist[输入] 边列表

  • graph_properties[输入] 图属性

  • renumber[输入] 如果为 true,则对图进行重新编号(对于 MG 必须为 true)

  • graph[输出] MTMG 图存储在此处

  • edge_weights[输出] MTMG 边权重存储在此处

  • edge_ids[输出] MTMG 边 ID 存储在此处

  • edge_types[输出] MTMG 边类型存储在此处

  • edge_start_times[输出] MTMG 边开始时间存储在此处

  • edge_end_times[输出] MTMG 边结束时间存储在此处

  • renumber_map[输入] MTMG renumber_map 存储在此处

  • do_expensive_check[输入] 一个标志,用于对输入参数运行昂贵检查(如果设置为 true)。

template<typename graph_view_t, typename property_t>
class edge_property_t : public cugraph::mtmg::detail::device_shared_wrapper_t<cugraph::edge_property_t<graph_view_t::wrapped_t, property_t>>#
#include <edge_property.hpp>

每个 GPU 的边属性对象。

公有函数

inline auto view()#

返回一个 edge_property_view_t(只读)

template<typename vertex_t, typename weight_t, typename edge_t, typename edge_type_t, typename edge_time_t>
class edgelist_t : public cugraph::mtmg::detail::device_shared_wrapper_t<detail::per_device_edgelist_t<vertex_t, weight_t, edge_t, edge_type_t, edge_time_t>>#
#include <edgelist.hpp>

每个 GPU 的边列表对象。

公有函数

inline void set(handle_t const &handle, size_t device_buffer_size, bool use_weight, bool use_edge_id, bool use_edge_type, bool use_edge_start_time, bool use_edge_end_time)#

为此 GPU 创建一个 per_device_edgelist。

inline void finalize_buffer(handle_t const &handle)#

停止在此边列表中插入边,以便我们可以使用这些边。

inline void consolidate_and_shuffle(cugraph::mtmg::handle_t const &handle, bool store_transposed)#

将边列表的边合并到一个边列表中,然后跨 GPU 进行混洗。

template<typename vertex_t, typename edge_t, bool store_transposed, bool multi_gpu>
class graph_t : public cugraph::mtmg::detail::device_shared_wrapper_t<cugraph::graph_t<vertex_t, edge_t, store_transposed, multi_gpu>>#
#include <graph.hpp>

每个 GPU 的图对象。

公有函数

inline auto view()#

创建一个 MTMG 图视图(只读)

template<typename vertex_t, typename edge_t, bool store_transposed, bool multi_gpu>
class graph_view_t : public cugraph::mtmg::detail::device_shared_wrapper_t<cugraph::graph_view_t<vertex_t, edge_t, store_transposed, multi_gpu>>#
#include <graph_view.hpp>

每个 GPU 的图视图。

公有函数

inline vertex_partition_view_t<vertex_t, multi_gpu> get_vertex_partition_view(cugraph::mtmg::handle_t const &handle) const#

获取此图的 vertex_partition_view。

inline raft::host_span<vertex_t const> get_vertex_partition_range_lasts(cugraph::mtmg::handle_t const &handle) const#

获取此图的 vertex_partition_view。

class handle_t#
#include <handle.hpp>

资源处理器。

多线程资源处理器。每个 GPU 都会获得一个 raft::handle 对象,提供对 GPU 资源的访问。在多线程环境中,多个线程将共享一个特定的 GPU。遵循 MPI 模型,每个线程将被分配一个线程等级。

公有函数

inline handle_t(raft::handle_t const &raft_handle, int thread_rank, rmm::cuda_device_id device_id)#

构造函数。

参数
  • raft_handle – 资源的 Raft 句柄

  • thread_rank – 此线程的等级

  • device_id – 此句柄操作的设备的设备 ID

inline raft::handle_t const &raft_handle() const#

获取 Raft 句柄。

返回

Raft 句柄的常量引用

inline rmm::cuda_stream_view get_stream() const#

获取 cuda 流。

返回

cuda 流

inline void sync_stream(rmm::cuda_stream_view stream) const#

在 cuda 流上同步。

参数

stream – 要同步哪个流(默认为此句柄的流)

inline void sync_stream() const#

在此句柄的 cuda 流上同步。

inline void sync_stream_pool() const#

同步流池中的所有流。

inline rmm::exec_policy get_thrust_policy(rmm::cuda_stream_view stream) const#

获取此流的 thrust 策略

参数

stream – 此 thrust 调用要使用的流

返回

使用当前流的执行策略

inline rmm::exec_policy get_thrust_policy() const#

获取此句柄的流的 thrust 策略

返回

使用当前流的执行策略

inline int get_thread_rank() const#

获取线程等级。

返回

线程等级

inline int get_size() const#

获取 GPU 数量。

返回

GPU 数量

inline int get_rank() const#

获取 GPU 等级。

返回

GPU 等级

class instance_manager_t#
#include <instance_manager.hpp>

管理集群的一个子集,用于一组图计算。

公有函数

inline instance_manager_t(std::vector<std::unique_ptr<raft::handle_t>> &&handles, std::vector<std::unique_ptr<ncclComm_t>> &&nccl_comms, std::vector<rmm::cuda_device_id> &&device_ids)#

构造函数。

参数

handles – RAFT 句柄向量,此节点上每个设备一个

inline handle_t get_handle()#

获取句柄。

实例管理器将构造一个适合发出请求的线程的句柄。线程将以循环方式分配给 GPU,以便将请求线程分散到各个 GPU 资源。

此函数是 CPU 线程安全的。

返回

此线程的句柄。

inline handle_t get_handle(int gpu_id, int thread_id = 0)#

获取特定 GPU 的句柄。

返回特定 GPU 的句柄。在无上下文环境中,这允许调用者为正确的主机线程重新构建句柄。它确实假定调用者不会允许多个线程同时使用 gpu_id/thread_id 对。

返回

此线程的句柄。

inline void reset_threads()#

重置线程计数器。

并行活动完成后,我们需要重置线程计数器,以便未来的线程能够正确地在 GPU 之间循环分配。

inline int get_local_gpu_count()#

实例中本地 GPU 的数量。

template<typename vertex_t, typename weight_t, typename edge_t, typename edge_type_t, typename edge_time_t>
class per_thread_edgelist_t#
#include <per_thread_edgelist.hpp>

支持从独立的主机线程创建边列表。

cugraph 边列表需要包含创建存储在 GPU 内存中的图(在多 GPU 配置中分布在多个 GPU 上)所需的所有边。

此类提供了一种机制,用于从独立的 CPU 线程填充边列表对象。

调用 append() 方法将获取边(在 CPU 主机内存中)并将它们附加到本地缓冲区。当本地缓冲区满时,将使用 flush() 方法将缓冲区发送到 GPU 内存。这使得 CPU 到 GPU 的传输更大(从而更高效)。

公有函数

inline per_thread_edgelist_t(detail::per_device_edgelist_t<vertex_t, weight_t, edge_t, edge_type_t, edge_time_t> &edgelist, size_t thread_buffer_size)#

唯一的构造函数。

参数
  • edgelist – 此 thread_edgelist_t 应关联的边列表

  • thread_buffer_size – 用于在 CPU 上累积边的本地缓冲区大小

inline void append(vertex_t src, vertex_t dst, std::optional<weight_t> wgt, std::optional<edge_t> edge_id, std::optional<edge_type_t> edge_type, std::optional<edge_time_t> edge_start_time, std::optional<edge_time_t> edge_end_time, rmm::cuda_stream_view stream_view)#

将一条边附加到边列表。

参数
  • src – 源顶点 ID

  • dst – 目标顶点 ID

  • wgt – 边权重

  • edge_id – 边 ID

  • edge_type – 边类型

  • edge_start_time – 边开始时间

  • edge_end_time – 边结束时间

  • stream_view – cuda 流

inline void append(raft::host_span<vertex_t const> src, raft::host_span<vertex_t const> dst, std::optional<raft::host_span<weight_t const>> wgt, std::optional<raft::host_span<edge_t const>> edge_id, std::optional<raft::host_span<edge_type_t const>> edge_type, std::optional<raft::host_span<edge_time_t const>> edge_start_time, std::optional<raft::host_span<edge_time_t const>> edge_end_time, rmm::cuda_stream_view stream_view)#

将边列表附加到边列表。

参数
  • src – 源顶点 ID

  • dst – 目标顶点 ID

  • wgt – 边权重

  • edge_id – 边 ID

  • edge_type – 边类型

  • edge_start_time – 边开始时间

  • edge_end_time – 边结束时间

  • stream_view – cuda 流

inline void flush(rmm::cuda_stream_view stream_view, bool sync = false)#

将线程数据从主机刷新到 GPU 内存。

参数
  • stream_view – cuda 流

  • sync – 如果为 true,则同步数据的异步复制;默认为 false。

template<typename vertex_t>
class renumber_map_t : public cugraph::mtmg::detail::device_shared_device_vector_t<vertex_t>#
#include <renumber_map.hpp>

用于存储重新编号映射的 MTMG 设备向量。

公有函数

inline auto view()#

返回重新编号映射的视图(只读)。

class resource_manager_t#
#include <resource_manager.hpp>

用于管理多线程多 GPU 接口中使用的本地和远程 GPU 资源的类。

在多 GPU 配置中,每个进程应该拥有此类的一个实例。应该通过调用 register_local_gpu(或者在我们支持多节点配置后调用 register_remote_gpu)来配置资源管理器对象,以便分配可在 mtmg 空间中使用的资源。

集群中的每个 GPU 都应被赋予一个唯一的全局等级(global rank),这是一个整数,用于在资源管理器中引用该 GPU。建议从 0 开始顺序编号 GPU,但这并非必需。

当我们想要执行一些图计算时,需要创建一个执行实例。根据所需计算资源的子集大小,我们可以为问题分配一定数量的 GPU(最多可分配到全部托管资源)。

返回的实例可用于创建图、执行一个或多个算法等。完成后,调用者可以删除该实例。

假定调用者负责资源的调度使用。

对于我们的第一个版本,我们只考虑单节点多 GPU 配置,因此远程 GPU 方法目前通过 ifdef 禁用。

公有函数

inline resource_manager_t()#

默认构造函数。

inline void register_local_gpu(int global_rank, rmm::cuda_device_id local_device_id)#

将本地 GPU 添加到资源管理器。

参数
  • global_rank – 分配给本地 GPU 的全局等级

  • local_device_id – 对应于此等级的本地 device_id

inline void register_remote_gpu(int global_rank)#

将远程 GPU 添加到资源管理器。

参数

global_rank – 分配给远程 GPU 的全局等级

inline std::unique_ptr<instance_manager_t> create_instance_manager(std::vector<int> ranks_to_include, ncclUniqueId instance_manager_id, size_t n_streams = 16) const#

使用注册资源的一个子集创建实例。

所选的资源集将被配置为一个实例管理器。如果 @ranks_to_include 是注册资源的真子集,则等级将被重新编号到 [0, ranks_to_use.size()) 范围内,使其成为一个适当的配置。

参数
  • ranks_to_use – 一个包含要包含在实例中的等级的向量。必须是全部可用等级集合的一个子集。

  • instance_manager_id – 一个由参与此实例的所有进程共享的 ncclUniqueId。所有进程在此调用中必须使用相同的 ID,调用代码有责任在调用前正确共享此 ID。

  • n_streams – 为每个 GPU 在流池中创建的流数量。默认为 16。

返回

指向实例管理器的唯一指针

inline std::vector<int> registered_ranks() const#

获取当前所有注册等级的列表。

返回

等级列表的副本。

template<typename vertex_t, typename result_t>
class vertex_pair_result_t : public cugraph::mtmg::detail::device_shared_device_vector_tuple_t<vertex_t, vertex_t, result_t>#
#include <vertex_pair_result.hpp>

用于存储顶点结果的 MTMG 设备向量。

公有函数

inline auto view()#

创建顶点结果视图(只读)

template<typename vertex_t, typename result_t>
class vertex_pair_result_view_t : public cugraph::mtmg::detail::device_shared_wrapper_t<std::tuple<raft::device_span<Ts>...>>#
#include <vertex_pair_result_view.hpp>

用于引用顶点对结果的 MTMG 设备 span。

公有函数

template<bool multi_gpu>
std::tuple<rmm::device_uvector<vertex_t>, rmm::device_uvector<vertex_t>, rmm::device_uvector<result_t>> gather(handle_t const &handle, raft::device_span<vertex_t const> vertices, raft::host_span<vertex_t const> vertex_partition_range_lasts, cugraph::vertex_partition_view_t<vertex_t, multi_gpu> vertex_partition_view, std::optional<cugraph::mtmg::renumber_map_view_t<vertex_t>> &renumber_map_view)#

从指定的顶点收集结果。

template<typename result_t>
class vertex_result_t : public cugraph::mtmg::detail::device_shared_device_vector_t<result_t>#
#include <vertex_result.hpp>

用于存储顶点结果的 MTMG 设备向量。

公有函数

inline auto view()#

创建顶点结果视图(只读)

template<typename result_t>
class vertex_result_view_t : public cugraph::mtmg::detail::device_shared_wrapper_t<raft::device_span<T>>#
#include <vertex_result_view.hpp>

用于引用顶点结果的 MTMG 设备 span。

公有函数

template<typename vertex_t, bool multi_gpu>
rmm::device_uvector<result_t> gather(handle_t const &handle, raft::device_span<vertex_t const> vertices, raft::host_span<vertex_t const> vertex_partition_range_lasts, cugraph::vertex_partition_view_t<vertex_t, multi_gpu> vertex_partition_view, std::optional<cugraph::mtmg::renumber_map_view_t<vertex_t>> &renumber_map_view, result_t default_value = 0)#

将指定顶点的结果收集到设备向量中。

namespace detail#

类型别名

template<typename T>
using device_shared_device_span_t = device_shared_wrapper_t<raft::device_span<T>>#

管理每个 GPU 上的设备 span。

template<typename ...Ts>
using device_shared_device_span_tuple_t = device_shared_wrapper_t<std::tuple<raft::device_span<Ts>...>>#

管理每个 GPU 上的设备 span 元组。

template<typename T>
class device_shared_device_vector_t : public cugraph::mtmg::detail::device_shared_wrapper_t<rmm::device_uvector<T>>#
#include <device_shared_device_vector.hpp>

管理每个 GPU 上的设备向量。

使用 device_shared_wrapper 管理每个 GPU 上的 rmm::device_uvector

公有函数

inline auto view()#

创建 device_shared_device_span(只读视图)

template<typename ...Ts>
class device_shared_device_vector_tuple_t : public cugraph::mtmg::detail::device_shared_wrapper_t<std::tuple<rmm::device_uvector<Ts>...>>#
#include <device_shared_device_vector_tuple.hpp>

管理每个 GPU 上的设备向量元组。

使用 device_shared_wrapper 管理每个 GPU 上的 rmm::device_uvector 实例元组。

公有函数

inline auto view()#

创建 device_shared_device_span(只读视图)

template<typename T>
class device_shared_wrapper_t#
#include <device_shared_wrapper.hpp>

包装一个对象,使其可供每个 GPU 使用。

在 MTMG 环境中,我们需要能够管理与特定 GPU 关联的对象集合,并从任意 GPU 线程获取这些对象。此对象将包装任何对象,并允许从不同线程访问它。

由 cugraph::mtmg::detail::device_shared_device_vector_t< vertex_t >、cugraph::mtmg::detail::device_shared_device_vector_t< result_t > 派生。

公有函数

inline void set(cugraph::mtmg::handle_t const &handle, wrapped_t &&obj)#

将包装的对象移动到此线程的包装器中。

参数
  • handle – Handle 用于标识与此对象关联的 GPU。

  • obj – 包装的对象

inline void set(int local_rank, wrapped_t &&obj)#

将包装的对象移动到此线程的包装器中。

参数
  • local_rank – 标识与此对象关联的 GPU。

  • obj – 包装的对象

inline wrapped_t &get(cugraph::mtmg::handle_t const &handle)#

获取特定线程对象的引用。

参数

handle – Handle 用于标识与此对象关联的 GPU。

返回

包装对象的引用。

inline wrapped_t const &get(cugraph::mtmg::handle_t const &handle) const#

从此包装器中获取特定线程对象的指针。

参数

handle – Handle 用于标识与此对象关联的 GPU。

返回

指向包装对象的共享指针。

template<typename vertex_t, typename weight_t, typename edge_t, typename edge_type_t, typename edge_time_t>
class per_device_edgelist_t#
#include <per_device_edgelist.hpp>

每个 GPU 的边列表。

管理与特定 GPU 关联的边的边列表。多个线程可以调用 append() 方法,可能同时调用。为了避免缓冲区满时不断复制,该类将创建一个设备缓冲区,其中包含构造函数中指定的元素数量。当该设备缓冲区满时,我们将创建一个新的缓冲区。

当我们尝试使用边列表时,我们将合并缓冲区,因为此时我们知道所需的总大小。

重要注意事项,期望此对象分两个阶段使用:1) 使用 append() 方法向缓冲区填充边;2) 消耗这些边来创建图。

这两个阶段期望是互斥的。调用进程应管理某种屏障,以确保所有线程在阶段切换前完成。如果 append() 调用(作为填充阶段的一部分)与 finalize_buffer()、consolidate_and_shuffle()、get_src()、get_dst()、get_wgt()、get_edge_id() 和 get_edge_type() 的调用重叠,则行为是未定义的(数据可能以某种非确定性方式更改)。

公有函数

inline per_device_edgelist_t(size_t device_buffer_size, bool use_weight, bool use_edge_id, bool use_edge_type, bool use_edge_start_time, bool use_edge_end_time, rmm::cuda_stream_view stream_view)#

构造一个新的 per device edgelist t 对象。

参数
  • device_buffer_size – 每个设备缓冲区中存储的边数量。

  • use_weight – 边列表是否包含权重。

  • use_edge_id – 边列表是否包含边 ID。

  • use_edge_type – 边列表是否包含边类型。

  • use_edge_start_time – 边列表是否包含边开始时间。

  • use_edge_end_time – 边列表是否包含边结束时间。

  • stream_view – CUDA 流视图。

inline per_device_edgelist_t(per_device_edgelist_t &&other)#

移动构造一个新的 per device edgelist t 对象。

参数

other – 要移动到此实例中的对象。

inline void append(raft::host_span<vertex_t const> src, raft::host_span<vertex_t const> dst, std::optional<raft::host_span<weight_t const>> wgt, std::optional<raft::host_span<edge_t const>> edge_id, std::optional<raft::host_span<edge_type_t const>> edge_type, std::optional<raft::host_span<edge_time_t const>> edge_start_time, std::optional<raft::host_span<edge_time_t const>> edge_end_time, rmm::cuda_stream_view stream_view)#

将边列表附加到边列表。

参数
  • src – 源顶点 ID

  • dst – 目标顶点 ID

  • wgt – 边权重

  • edge_id – 边 ID

  • edge_type – 边类型

  • edge_start_time – 边开始时间。

  • edge_end_time – 边结束时间。

  • stream_view – CUDA 流视图。

inline void finalize_buffer(rmm::cuda_stream_view stream_view)#

将边列表标记为准备好读取(所有写入已完成)。

参数

stream_view – CUDA 流视图。

inline void consolidate_and_shuffle(cugraph::mtmg::handle_t const &handle, bool store_transposed)#

合并边列表(如有必要)并随机打乱到适当的 GPU。

参数

handle – 资源句柄。

namespace reduce_op#

函数

template<typename ReduceOp, typename Iterator> __device__ std::enable_if_t< has_compatible_raft_comms_op_v< ReduceOp >, void > atomic_reduce (Iterator iter, typename thrust::iterator_traits< Iterator >::value_type value)
template<typename ReduceOp, typename EdgePartitionEndpointPropertyValueWrapper> __device__ std::enable_if_t< has_compatible_raft_comms_op_v< ReduceOp >, void > atomic_reduce (EdgePartitionEndpointPropertyValueWrapper edge_partition_endpoint_property_value, typename EdgePartitionEndpointPropertyValueWrapper::vertex_type offset, typename EdgePartitionEndpointPropertyValueWrapper::value_type value)

变量

template<typename ReduceOp>
bool has_compatible_raft_comms_op_v = has_compatible_raft_comms_op<ReduceOp::value#
template<typename ReduceOp>
bool has_identity_element_v = has_identity_element<ReduceOp::value#
template<typename T>
struct any#
template<typename T>
struct elementwise_maximum#
template<typename T>
struct elementwise_minimum#
template<typename ReduceOp, typename = raft::comms::op_t>
struct has_compatible_raft_comms_op : public std::false_type#
template<typename ReduceOp>
struct has_compatible_raft_comms_op<ReduceOp, std::remove_cv_t<decltype(ReduceOp::compatible_raft_comms_op)>> : public std::false_type, public std::true_type#
template<typename ReduceOp, typename = typename ReduceOp::value_type>
struct has_identity_element : public std::false_type#
template<typename ReduceOp>
struct has_identity_element<ReduceOp, std::remove_cv_t<decltype(ReduceOp::identity_element)>> : public std::false_type, public std::true_type#
template<typename T, typename Enable = void>
struct maximum#
template<typename T>
struct maximum<T, std::enable_if_t<cugraph::is_thrust_tuple_of_arithmetic<T>::value>>>#
template<typename T>
struct maximum<T, std::enable_if_t<std::is_arithmetic_v<T>>>#
template<typename T, typename Enable = void>
struct minimum#
template<typename T>
struct minimum<T, std::enable_if_t<cugraph::is_thrust_tuple_of_arithmetic<T>::value>>>#
template<typename T>
struct minimum<T, std::enable_if_t<std::is_arithmetic_v<T>>>#
struct null#
template<typename T>
struct plus#
namespace detail#

函数

template<typename T, std::size_t... Is> __host__ __device__ std::enable_if_t< cugraph::is_thrust_tuple_of_arithmetic< T >::value, T > elementwise_thrust_min (T lhs, T rhs, std::index_sequence< Is... >)
template<typename T, std::size_t... Is> __host__ __device__ std::enable_if_t< cugraph::is_thrust_tuple_of_arithmetic< T >::value, T > elementwise_thrust_max (T lhs, T rhs, std::index_sequence< Is... >)
namespace subgraph#