Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
acf15bc
Merge pull request #37 from rapidsai/branch-0.17
aschaffer Nov 30, 2020
a584e0b
Merge pull request #38 from rapidsai/branch-0.18
aschaffer Dec 9, 2020
338b2d4
Merge pull request #39 from rapidsai/branch-0.18
aschaffer Dec 30, 2020
efd7e9a
Merge pull request #40 from rapidsai/branch-0.18
aschaffer Jan 12, 2021
a23ce0d
Merge pull request #41 from rapidsai/branch-0.19
aschaffer Feb 25, 2021
22b32d8
Merge pull request #42 from rapidsai/branch-0.19
aschaffer Mar 1, 2021
e5042fc
Merge pull request #43 from rapidsai/branch-0.19
aschaffer Mar 20, 2021
ca02ee4
Merge pull request #44 from rapidsai/branch-0.19
aschaffer Apr 7, 2021
79409e7
Merge pull request #45 from rapidsai/branch-0.20
aschaffer Apr 13, 2021
360c293
Merge pull request #46 from rapidsai/branch-0.20
aschaffer Apr 28, 2021
e57f261
Merge pull request #47 from rapidsai/branch-0.20
aschaffer May 6, 2021
a63cdea
Merge pull request #48 from rapidsai/branch-21.08
aschaffer Jun 9, 2021
7e6bf4c
Merge branch 'rapidsai:branch-21.08' into branch-21.08
aschaffer Jun 15, 2021
6f3b342
Merge branch 'rapidsai:branch-21.08' into branch-21.08
aschaffer Jul 19, 2021
8c37e4a
Merge branch 'branch-21.08' of github.com:rapidsai/cugraph into fea_b…
aschaffer Jul 23, 2021
eed4bb7
Thrust implementation of graph (ci, vals) segmented sort.
aschaffer Jul 23, 2021
7e905ff
Updated check_symmetry().
aschaffer Jul 23, 2021
aac3197
Renamed to topology namespace.
aschaffer Jul 23, 2021
3ad8f1b
Added seg-sorter low leve test.
aschaffer Jul 23, 2021
f77f70f
Improved semantics of seg-sorter functor.
aschaffer Jul 24, 2021
1cbdf3d
Added checkers for segmented-sort.
aschaffer Jul 24, 2021
6bd8211
Added CUB segmented sort, but column_indices order is not correct.
aschaffer Jul 24, 2021
fdbb808
Switched vals/keys order, but column_indices order is not correct.
aschaffer Jul 25, 2021
890955c
Tested sequenced keys, no change. In-place seems to work.
aschaffer Jul 25, 2021
c0ce0d4
No in-place. No indices sorting. No values sorting. No (offsets+1) tr…
aschaffer Jul 25, 2021
85b952a
CUB segmented sort fails with their own example.
aschaffer Jul 25, 2021
4083a1e
CUB segmented sort passes with their own example (missed offsets).
aschaffer Jul 25, 2021
b64822b
CUB segmented sort passes with simple graph.
aschaffer Jul 25, 2021
305f555
Profiling / comparison between hand-written Thrust seg-sort and CUB s…
aschaffer Jul 26, 2021
a0f4142
Segmented Sort Clean-up.
aschaffer Jul 26, 2021
35aeaf4
graph_t::sort() memf.
aschaffer Jul 27, 2021
4a1f601
graph_t::sort() without expensive copies.
aschaffer Jul 27, 2021
2456d7b
graph_t::sort(): cleaner semantics.
aschaffer Jul 27, 2021
3c51fc6
Added biased vertex selector.
aschaffer Jul 28, 2021
ece5398
Made biased selector operator const.
aschaffer Jul 28, 2021
2e37363
Added biased selector low level test.
aschaffer Jul 28, 2021
240db7a
Added weights aggregation functionality and test.
aschaffer Jul 29, 2021
9661a2f
Improved weights aggregation functionality via CUB.
aschaffer Jul 30, 2021
be4c640
Fixed initial value issue on generic aggregator.
aschaffer Jul 30, 2021
78af9b6
Applied visitor aggregator on graph_view, rather than graph.
aschaffer Jul 30, 2021
dc32587
Splitting selector logic.
aschaffer Jul 30, 2021
5bf2477
Factored out uniform and biased selectors.
aschaffer Jul 31, 2021
d4cbe14
Re-factoring of samplers to own their resources.
aschaffer Aug 2, 2021
0753b2c
Re-factoring of selector-sampling policy, due to selector owning spec…
aschaffer Aug 3, 2021
49fc0c3
Clean-up.
aschaffer Aug 3, 2021
cd41d9c
Biased selector interface made compliant to uniform selector interface.
aschaffer Aug 4, 2021
19752c4
Changed vertical traversal policy to also use sampling strategy. Bett…
aschaffer Aug 4, 2021
3531b84
Clean-up.
aschaffer Aug 4, 2021
e80032f
Removed some unneeded device buffers for vertical traversal.
aschaffer Aug 4, 2021
015ab69
Merge branch 'branch-21.10' of github.com:rapidsai/cugraph into fea_b…
aschaffer Aug 5, 2021
f098f0f
Test for biased selector on unsorted graph.
aschaffer Aug 5, 2021
ae8bf84
Added sampling strategy to RW API.
aschaffer Aug 6, 2021
5bb58e3
Resolve conflicts.
aschaffer Aug 6, 2021
053174c
Completed RW tests with sampling strategy.
aschaffer Aug 10, 2021
f6d12ac
Completed RW profiling with sampling strategy.
aschaffer Aug 10, 2021
b2f91ba
Addressed review comments on dox and preconditions that are not neces…
aschaffer Aug 11, 2021
3e67f85
Addressed review comments on removing 0.5 ceiling in sampling logic.
aschaffer Aug 11, 2021
6cd0edd
Addressed review comments on removing graph.sort() and trailing under…
aschaffer Aug 11, 2021
776997e
Addressed review comments on fixing check_symmetry() and trailing und…
aschaffer Aug 12, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion cpp/include/cugraph/algorithms.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -1344,6 +1344,8 @@ extract_ego(raft::handle_t const& handle,
* (compressed) format; when padding is used the output is a matrix of vertex paths and a matrix of
* edges paths (weights); in this case the matrices are stored in row major order; the vertex path
* matrix is padded with `num_vertices` values and the weight matrix is padded with `0` values;
* @param selector_type identifier for sampling strategy: uniform, biased, etc.; possible
* values{0==uniform, 1==biased}; defaults to 0 == uniform;
* @return std::tuple<rmm::device_uvector<vertex_t>, rmm::device_uvector<weight_t>,
* rmm::device_uvector<index_t>> Triplet of either padded or coalesced RW paths; in the coalesced
* case (default), the return consists of corresponding vertex and edge weights for each, and
Expand All @@ -1363,7 +1365,8 @@ random_walks(raft::handle_t const& handle,
typename graph_t::vertex_type const* ptr_d_start,
index_t num_paths,
index_t max_depth,
bool use_padding = false);
bool use_padding = false,
int selector_type = 0);

/**
* @brief Finds (weakly-connected-)component IDs of each vertices in the input graph.
Expand Down
23 changes: 23 additions & 0 deletions cpp/include/cugraph/graph.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,29 @@ class graph_t<vertex_t, edge_t, weight_t, store_transposed, multi_gpu, std::enab
false);
}

// FIXME: possibley to be added later;
// for now it's unnecessary;
// (commented out, per reviewer request)
//
// generic in-place sorter on CSR structure;
// this is specifically targetting
// segmented-sort by weigths; but
// must be generic enough to support future
// types of sorting;
// Notes:
// (1.) criterion is mutable (non-const)
// to allow for sorter obejcts for which
// the sorting operation fills additional structures
// (later to be retrieved; e.g., for debugging);
// (2.) sorting object is responsible for updating "in-place"
// any of the (offsets, indices, weights) arrays;
//
// template <typename in_place_sorter_t>
// void sort(in_place_sorter_t& criterion)
// {
// criterion(offsets_, indices_, weights_);
// }

private:
friend class cugraph::serializer::serializer_t;

Expand Down
18 changes: 12 additions & 6 deletions cpp/src/sampling/random_walks.cu
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@ template std::
int32_t const* ptr_d_start,
int32_t num_paths,
int32_t max_depth,
bool use_padding);
bool use_padding,
int selector_type);

template std::
tuple<rmm::device_uvector<int32_t>, rmm::device_uvector<float>, rmm::device_uvector<int64_t>>
Expand All @@ -39,7 +40,8 @@ template std::
int32_t const* ptr_d_start,
int64_t num_paths,
int64_t max_depth,
bool use_padding);
bool use_padding,
int selector_type);

template std::
tuple<rmm::device_uvector<int64_t>, rmm::device_uvector<float>, rmm::device_uvector<int64_t>>
Expand All @@ -48,7 +50,8 @@ template std::
int64_t const* ptr_d_start,
int64_t num_paths,
int64_t max_depth,
bool use_padding);
bool use_padding,
int selector_type);
//}
//
// SG FP64{
Expand All @@ -59,7 +62,8 @@ template std::
int32_t const* ptr_d_start,
int32_t num_paths,
int32_t max_depth,
bool use_padding);
bool use_padding,
int selector_type);

template std::
tuple<rmm::device_uvector<int32_t>, rmm::device_uvector<double>, rmm::device_uvector<int64_t>>
Expand All @@ -68,7 +72,8 @@ template std::
int32_t const* ptr_d_start,
int64_t num_paths,
int64_t max_depth,
bool use_padding);
bool use_padding,
int selector_type);

template std::
tuple<rmm::device_uvector<int64_t>, rmm::device_uvector<double>, rmm::device_uvector<int64_t>>
Expand All @@ -77,7 +82,8 @@ template std::
int64_t const* ptr_d_start,
int64_t num_paths,
int64_t max_depth,
bool use_padding);
bool use_padding,
int selector_type);
//}

template std::
Expand Down
Loading