@@ -263,6 +263,39 @@ struct create_graph_functor : public cugraph::c_api::abstract_functor {
263
263
std::optional<rmm::device_uvector<edge_time_t >> dummy_start_times{std::nullopt};
264
264
std::optional<rmm::device_uvector<edge_time_t >> dummy_end_times{std::nullopt};
265
265
266
+ rmm::device_uvector<vertex_t > vertices (edgelist_srcs.size (), handle_.get_stream ());
267
+
268
+ if (!renumber_) {
269
+ raft::copy<vertex_t >(
270
+ vertices.data (), edgelist_srcs.data (), edgelist_srcs.size (), handle_.get_stream ());
271
+
272
+ cugraph::detail::sort_ints (
273
+ handle_.get_stream (),
274
+ raft::device_span<vertex_t >{vertices.data (), vertices.size ()});
275
+
276
+ size_t unique_vertices_size = cugraph::detail::unique_ints (
277
+ handle_.get_stream (),
278
+ raft::device_span<vertex_t >{vertices.data (), vertices.size ()});
279
+
280
+ vertices.resize (unique_vertices_size + edgelist_dsts.size (), handle_.get_stream ());
281
+
282
+ raft::copy<vertex_t >(
283
+ vertices.data () + unique_vertices_size,
284
+ edgelist_dsts.data (),
285
+ edgelist_dsts.size (),
286
+ handle_.get_stream ());
287
+
288
+ cugraph::detail::sort_ints (
289
+ handle_.get_stream (),
290
+ raft::device_span<vertex_t >{vertices.data (), vertices.size ()});
291
+
292
+ unique_vertices_size = cugraph::detail::unique_ints (
293
+ handle_.get_stream (),
294
+ raft::device_span<vertex_t >{vertices.data (), vertices.size ()});
295
+
296
+ vertices.resize (unique_vertices_size, handle_.get_stream ());
297
+ }
298
+
266
299
std::tie (*graph,
267
300
new_edge_weights,
268
301
new_edge_ids,
@@ -293,27 +326,6 @@ struct create_graph_functor : public cugraph::c_api::abstract_functor {
293
326
*number_map = std::move (new_number_map.value ());
294
327
} else {
295
328
// Ensure vertices are numbered consecutively
296
- rmm::device_uvector<vertex_t > vertices (edgelist_srcs.size (), handle_.get_stream ());
297
-
298
- raft::copy<vertex_t >(
299
- vertices.data (), edgelist_srcs.data (), edgelist_srcs.size (), handle_.get_stream ());
300
-
301
- cugraph::detail::sort_ints (
302
- handle_.get_stream (),
303
- raft::device_span<vertex_t >{vertices.data (), vertices.size ()});
304
-
305
- cugraph::detail::unique_ints (
306
- handle_.get_stream (),
307
- raft::device_span<vertex_t >{vertices.data (), vertices.size ()});
308
-
309
- auto unique_srcs_size = vertices.size ();
310
- vertices.resize (unique_srcs_size + edgelist_dsts.size (), handle_.get_stream ());
311
-
312
- raft::copy<vertex_t >(
313
- vertices.data () + unique_srcs_size,
314
- edgelist_dsts.data (),
315
- edgelist_dsts.size (),
316
- handle_.get_stream ());
317
329
318
330
number_map->resize (graph->number_of_vertices (), handle_.get_stream ());
319
331
cugraph::detail::sequence_fill (handle_.get_stream (),
0 commit comments