Shuffle functions#

template<typename vertex_t>
std::tuple<rmm::device_uvector<vertex_t>, std::vector<cugraph::arithmetic_device_uvector_t>> shuffle_ext_vertices(
raft::handle_t const &handle,
rmm::device_uvector<vertex_t> &&vertices,
std::vector<cugraph::arithmetic_device_uvector_t> &&vertex_properties,
std::optional<large_buffer_type_t> large_buffer_type = std::nullopt
)#

Shuffle external vertex IDs to the owning GPUs (by vertex partitioning).

Template Parameters:

vertex_t – Type of vertex identifiers. Needs to be an integral type.

Parameters:
  • handle – RAFT handle object to encapsulate resources (e.g. CUDA stream, communicator, and handles to various CUDA libraries) to run graph algorithms.

  • vertices – Vector of vertex ids

  • vertex_properties – Vector of vertex properties, each element is an arithmetic device vector

Returns:

Vector of vertex ids mapped to this GPU.

template<typename vertex_t>
std::tuple<rmm::device_uvector<vertex_t>, std::vector<cugraph::arithmetic_device_uvector_t>> shuffle_int_vertices(
raft::handle_t const &handle,
rmm::device_uvector<vertex_t> &&vertices,
std::vector<cugraph::arithmetic_device_uvector_t> &&vertex_properties,
raft::host_span<vertex_t const> vertex_partition_range_lasts,
std::optional<large_buffer_type_t> large_buffer_type = std::nullopt
)#

Shuffle internal vertex IDs to the owning GPUs (by vertex partitioning).

Template Parameters:

vertex_t – Type of vertex identifiers. Needs to be an integral type.

Parameters:
  • handle – RAFT handle object to encapsulate resources (e.g. CUDA stream, communicator, and handles to various CUDA libraries) to run graph algorithms.

  • vertices – Vector of vertex ids

  • vertex_properties – Vector of vertex properties, each element is an arithmetic device vector

  • vertex_partition_range_lasts – Span of vertex partition range lasts (size = number of GPUs)

Returns:

Vector of vertex ids mapped to this GPU.