|
18 | 18 |
|
19 | 19 | #include "detail/graph_partition_utils.cuh"
|
20 | 20 | #include "prims/edge_bucket.cuh"
|
| 21 | +#include "prims/per_v_pair_dst_nbr_intersection.cuh" |
21 | 22 | #include "prims/transform_e.cuh"
|
22 |
| -#include "prims/transform_reduce_dst_nbr_intersection_of_e_endpoints_by_v.cuh" |
23 | 23 |
|
24 | 24 | #include <cugraph/detail/shuffle_wrappers.hpp>
|
25 | 25 | #include <cugraph/graph_functions.hpp>
|
@@ -124,7 +124,8 @@ struct extract_q_r {
|
124 | 124 | template <typename vertex_t, typename edge_t, bool store_transposed, bool multi_gpu>
|
125 | 125 | edge_property_t<graph_view_t<vertex_t, edge_t, false, multi_gpu>, edge_t> edge_triangle_count_impl(
|
126 | 126 | raft::handle_t const& handle,
|
127 |
| - graph_view_t<vertex_t, edge_t, store_transposed, multi_gpu> const& graph_view) |
| 127 | + graph_view_t<vertex_t, edge_t, store_transposed, multi_gpu> const& graph_view, |
| 128 | + bool do_expensive_check) |
128 | 129 | {
|
129 | 130 | using weight_t = float;
|
130 | 131 | rmm::device_uvector<vertex_t> edgelist_srcs(0, handle.get_stream());
|
@@ -158,14 +159,11 @@ edge_property_t<graph_view_t<vertex_t, edge_t, false, multi_gpu>, edge_t> edge_t
|
158 | 159 | num_remaining_edges -= chunk_size;
|
159 | 160 | // Perform 'nbr_intersection' in chunks to reduce peak memory.
|
160 | 161 | auto [intersection_offsets, intersection_indices] =
|
161 |
| - detail::nbr_intersection(handle, |
162 |
| - graph_view, |
163 |
| - cugraph::edge_dummy_property_t{}.view(), |
164 |
| - edge_first + prev_chunk_size, |
165 |
| - edge_first + prev_chunk_size + chunk_size, |
166 |
| - std::array<bool, 2>{true, true}, |
167 |
| - false /*FIXME: pass 'do_expensive_check' as argument*/); |
168 |
| - |
| 162 | + per_v_pair_dst_nbr_intersection(handle, |
| 163 | + graph_view, |
| 164 | + edge_first + prev_chunk_size, |
| 165 | + edge_first + prev_chunk_size + chunk_size, |
| 166 | + do_expensive_check); |
169 | 167 | // Update the number of triangles of each (p, q) edges by looking at their intersection
|
170 | 168 | // size
|
171 | 169 | thrust::for_each(
|
@@ -365,9 +363,11 @@ edge_property_t<graph_view_t<vertex_t, edge_t, false, multi_gpu>, edge_t> edge_t
|
365 | 363 |
|
366 | 364 | template <typename vertex_t, typename edge_t, bool multi_gpu>
|
367 | 365 | edge_property_t<graph_view_t<vertex_t, edge_t, false, multi_gpu>, edge_t> edge_triangle_count(
|
368 |
| - raft::handle_t const& handle, graph_view_t<vertex_t, edge_t, false, multi_gpu> const& graph_view) |
| 366 | + raft::handle_t const& handle, |
| 367 | + graph_view_t<vertex_t, edge_t, false, multi_gpu> const& graph_view, |
| 368 | + bool do_expensive_check) |
369 | 369 | {
|
370 |
| - return detail::edge_triangle_count_impl(handle, graph_view); |
| 370 | + return detail::edge_triangle_count_impl(handle, graph_view, do_expensive_check); |
371 | 371 | }
|
372 | 372 |
|
373 | 373 | } // namespace cugraph
|
0 commit comments