Skip to content

Commit

Permalink
More work (in progress) to enable only parts of the algorithms
Browse files Browse the repository at this point in the history
  • Loading branch information
caugonnet committed Jan 22, 2025
1 parent 0f6e2ae commit 22b54cc
Show file tree
Hide file tree
Showing 4 changed files with 234 additions and 161 deletions.
315 changes: 178 additions & 137 deletions cpp/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,15 @@ option(USE_RAFT_STATIC "Build raft as a static library" OFF)
option(CUGRAPH_COMPILE_RAFT_LIB "Compile the raft library instead of using it header-only" ON)
option(CUDA_STATIC_RUNTIME "Statically link the CUDA toolkit runtime and libraries" OFF)

option(BUILD_CUGRAPH_COMPONENTS_ALGORITHMS "Enable components algorithms" ON)
option(BUILD_CUGRAPH_SAMPLING_ALGORITHMS "Enable sampling algorithms" ON)
option(BUILD_CUGRAPH_CENTRALITY_ALGORITHMS "Enable centrality algorithms" ON)
option(BUILD_CUGRAPH_COMMUNITY_ALGORITHMS "Enable community algorithms" ON)
option(BUILD_CUGRAPH_TRAVERSAL_ALGORITHMS "Enable traversal algorithms" ON)
option(BUILD_CUGRAPH_TREE_ALGORITHMS "Enable tree algorithms" ON)
option(BUILD_CUGRAPH_LINK_ANALYSIS_ALGORITHMS "Enable link analysis algorithms" ON)
option(BUILD_CUGRAPH_LINK_PREDICTION_ALGORITHMS "Enable link prediction algorithms" ON)

message(VERBOSE "CUGRAPH: CUDA_STATIC_RUNTIME=${CUDA_STATIC_RUNTIME}")

################################################################################
Expand Down Expand Up @@ -150,7 +159,6 @@ endif()
# which should give us a better parallel schedule.

set(CUGRAPH_SOURCES
src/utilities/shuffle_vertices_mg_v32_fp.cu
src/utilities/shuffle_vertices_mg_v32_integral.cu
src/utilities/shuffle_vertices_mg_v64_fp.cu
src/utilities/shuffle_vertices_mg_v64_integral.cu
Expand All @@ -166,25 +174,6 @@ set(CUGRAPH_SOURCES
src/detail/groupby_and_count_mg_v64_e64.cu
src/detail/collect_comm_wrapper_mg_v32_e32.cu
src/detail/collect_comm_wrapper_mg_v64_e64.cu
src/sampling/detail/conversion_utilities.cu
src/sampling/random_walks_mg_v64_e64.cu
src/sampling/random_walks_mg_v32_e32.cu
src/community/detail/common_methods_mg_v64_e64.cu
src/community/detail/common_methods_mg_v32_e32.cu
src/community/detail/common_methods_sg_v64_e64.cu
src/community/detail/common_methods_sg_v32_e32.cu
src/community/detail/refine_sg_v64_e64.cu
src/community/detail/refine_sg_v32_e32.cu
src/community/detail/refine_mg_v64_e64.cu
src/community/detail/refine_mg_v32_e32.cu
src/community/edge_triangle_count_sg_v64_e64.cu
src/community/edge_triangle_count_sg_v32_e32.cu
src/community/edge_triangle_count_mg_v64_e64.cu
src/community/edge_triangle_count_mg_v32_e32.cu
src/community/detail/maximal_independent_moves_sg_v64_e64.cu
src/community/detail/maximal_independent_moves_sg_v32_e32.cu
src/community/detail/maximal_independent_moves_mg_v64_e64.cu
src/community/detail/maximal_independent_moves_mg_v32_e32.cu
src/detail/utility_wrappers_32.cu
src/detail/utility_wrappers_64.cu
src/structure/graph_view_mg_v64_e64.cu
Expand All @@ -197,83 +186,12 @@ set(CUGRAPH_SOURCES
src/utilities/path_retrieval_sg_v64_e64.cu
src/structure/legacy/graph.cu
src/linear_assignment/legacy/hungarian.cu
src/link_prediction/jaccard_sg_v64_e64.cu
src/link_prediction/jaccard_sg_v32_e32.cu
src/link_prediction/sorensen_sg_v64_e64.cu
src/link_prediction/sorensen_sg_v32_e32.cu
src/link_prediction/overlap_sg_v64_e64.cu
src/link_prediction/overlap_sg_v32_e32.cu
src/link_prediction/cosine_sg_v64_e64.cu
src/link_prediction/cosine_sg_v32_e32.cu
src/link_prediction/jaccard_mg_v64_e64.cu
src/link_prediction/jaccard_mg_v32_e32.cu
src/link_prediction/sorensen_mg_v64_e64.cu
src/link_prediction/sorensen_mg_v32_e32.cu
src/link_prediction/overlap_mg_v64_e64.cu
src/link_prediction/overlap_mg_v32_e32.cu
src/link_prediction/cosine_mg_v64_e64.cu
src/link_prediction/cosine_mg_v32_e32.cu
src/layout/legacy/force_atlas2.cu
src/converters/legacy/COOtoCSR.cu
src/community/legacy/spectral_clustering.cu
src/community/louvain_sg_v64_e64.cu
src/community/louvain_sg_v32_e32.cu
src/community/louvain_mg_v64_e64.cu
src/community/louvain_mg_v32_e32.cu
src/community/leiden_sg_v64_e64.cu
src/community/leiden_sg_v32_e32.cu
src/community/leiden_mg_v64_e64.cu
src/community/leiden_mg_v32_e32.cu
src/community/ecg_sg_v64_e64.cu
src/community/ecg_sg_v32_e32.cu
src/community/ecg_mg_v64_e64.cu
src/community/ecg_mg_v32_e32.cu
src/community/egonet_sg_v64_e64.cu
src/community/egonet_sg_v32_e32.cu
src/community/egonet_mg_v64_e64.cu
src/community/egonet_mg_v32_e32.cu
src/community/k_truss_sg_v64_e64.cu
src/community/k_truss_sg_v32_e32.cu
src/community/k_truss_mg_v64_e64.cu
src/community/k_truss_mg_v32_e32.cu
src/lookup/lookup_src_dst_mg_v32_e32.cu
src/lookup/lookup_src_dst_mg_v64_e64.cu
src/lookup/lookup_src_dst_sg_v32_e32.cu
src/lookup/lookup_src_dst_sg_v64_e64.cu
src/sampling/random_walks_old_sg_v32_e32.cu
src/sampling/random_walks_old_sg_v64_e64.cu
src/sampling/random_walks_sg_v64_e64.cu
src/sampling/random_walks_sg_v32_e32.cu
src/sampling/detail/prepare_next_frontier_sg_v64_e64.cu
src/sampling/detail/prepare_next_frontier_sg_v32_e32.cu
src/sampling/detail/prepare_next_frontier_mg_v64_e64.cu
src/sampling/detail/prepare_next_frontier_mg_v32_e32.cu
src/sampling/detail/gather_one_hop_edgelist_sg_v64_e64.cu
src/sampling/detail/gather_one_hop_edgelist_sg_v32_e32.cu
src/sampling/detail/gather_one_hop_edgelist_mg_v64_e64.cu
src/sampling/detail/gather_one_hop_edgelist_mg_v32_e32.cu
src/sampling/detail/remove_visited_vertices_from_frontier_sg_v32_e32.cu
src/sampling/detail/remove_visited_vertices_from_frontier_sg_v64_e64.cu
src/sampling/detail/check_edge_bias_values_sg_v64_e64.cu
src/sampling/detail/check_edge_bias_values_sg_v32_e32.cu
src/sampling/detail/check_edge_bias_values_mg_v64_e64.cu
src/sampling/detail/check_edge_bias_values_mg_v32_e32.cu
src/sampling/detail/sample_edges_sg_v64_e64.cu
src/sampling/detail/sample_edges_sg_v32_e32.cu
src/sampling/detail/sample_edges_mg_v64_e64.cu
src/sampling/detail/sample_edges_mg_v32_e32.cu
src/sampling/detail/shuffle_and_organize_output_mg_v64_e64.cu
src/sampling/detail/shuffle_and_organize_output_mg_v32_e32.cu
src/sampling/neighbor_sampling_mg_v32_e32.cu
src/sampling/neighbor_sampling_mg_v64_e64.cu
src/sampling/neighbor_sampling_sg_v32_e32.cu
src/sampling/neighbor_sampling_sg_v64_e64.cu
src/sampling/negative_sampling_sg_v32_e32.cu
src/sampling/negative_sampling_sg_v64_e64.cu
src/sampling/negative_sampling_mg_v32_e32.cu
src/sampling/negative_sampling_mg_v64_e64.cu
src/sampling/sampling_post_processing_sg_v64_e64.cu
src/sampling/sampling_post_processing_sg_v32_e32.cu
src/cores/core_number_sg_v64_e64.cu
src/cores/core_number_sg_v32_e32.cu
src/cores/core_number_mg_v64_e64.cu
Expand Down Expand Up @@ -343,40 +261,6 @@ set(CUGRAPH_SOURCES
src/structure/select_random_vertices_sg_v32_e32.cu
src/structure/select_random_vertices_mg_v64_e64.cu
src/structure/select_random_vertices_mg_v32_e32.cu
src/traversal/extract_bfs_paths_sg_v64_e64.cu
src/traversal/extract_bfs_paths_sg_v32_e32.cu
src/traversal/extract_bfs_paths_mg_v64_e64.cu
src/traversal/extract_bfs_paths_mg_v32_e32.cu
src/traversal/bfs_sg_v64_e64.cu
src/traversal/bfs_sg_v32_e32.cu
src/traversal/bfs_mg_v64_e64.cu
src/traversal/bfs_mg_v32_e32.cu
src/traversal/sssp_sg_v64_e64.cu
src/traversal/sssp_sg_v32_e32.cu
src/traversal/od_shortest_distances_sg_v64_e64.cu
src/traversal/od_shortest_distances_sg_v32_e32.cu
src/traversal/sssp_mg_v64_e64.cu
src/traversal/sssp_mg_v32_e32.cu
src/link_analysis/hits_sg_v64_e64.cu
src/link_analysis/hits_sg_v32_e32.cu
src/link_analysis/hits_mg_v64_e64.cu
src/link_analysis/hits_mg_v32_e32.cu
src/link_analysis/pagerank_sg_v64_e64.cu
src/link_analysis/pagerank_sg_v32_e32.cu
src/link_analysis/pagerank_mg_v64_e64.cu
src/link_analysis/pagerank_mg_v32_e32.cu
src/centrality/katz_centrality_sg_v64_e64.cu
src/centrality/katz_centrality_sg_v32_e32.cu
src/centrality/katz_centrality_mg_v64_e64.cu
src/centrality/katz_centrality_mg_v32_e32.cu
src/centrality/eigenvector_centrality_sg_v64_e64.cu
src/centrality/eigenvector_centrality_sg_v32_e32.cu
src/centrality/eigenvector_centrality_mg_v64_e64.cu
src/centrality/eigenvector_centrality_mg_v32_e32.cu
src/centrality/betweenness_centrality_sg_v64_e64.cu
src/centrality/betweenness_centrality_sg_v32_e32.cu
src/centrality/betweenness_centrality_mg_v64_e64.cu
src/centrality/betweenness_centrality_mg_v32_e32.cu
src/tree/legacy/mst.cu
src/from_cugraph_ops/sampling_index.cu
src/components/weakly_connected_components_sg_v64_e64.cu
Expand Down Expand Up @@ -407,18 +291,6 @@ set(CUGRAPH_SOURCES
src/structure/symmetrize_edgelist_sg_v32_e32.cu
src/structure/symmetrize_edgelist_mg_v64_e64.cu
src/structure/symmetrize_edgelist_mg_v32_e32.cu
src/community/triangle_count_sg_v64_e64.cu
src/community/triangle_count_sg_v32_e32.cu
src/community/triangle_count_mg_v64_e64.cu
src/community/triangle_count_mg_v32_e32.cu
src/community/approx_weighted_matching_sg_v64_e64.cu
src/community/approx_weighted_matching_sg_v32_e32.cu
src/community/approx_weighted_matching_mg_v64_e64.cu
src/community/approx_weighted_matching_mg_v32_e32.cu
src/traversal/k_hop_nbrs_sg_v64_e64.cu
src/traversal/k_hop_nbrs_sg_v32_e32.cu
src/traversal/k_hop_nbrs_mg_v64_e64.cu
src/traversal/k_hop_nbrs_mg_v32_e32.cu
src/mtmg/vertex_result_sg_v32_e32.cu
src/mtmg/vertex_result_sg_v64_e64.cu
src/mtmg/vertex_result_mg_v32_e32.cu
Expand All @@ -429,6 +301,175 @@ set(CUGRAPH_SOURCES
src/mtmg/vertex_pairs_result_mg_v64_e64.cu
)

if (BUILD_CUGRAPH_LINK_ANALYSIS_ALGORITHMS)
list(APPEND CUGRAPH_SOURCES
src/link_analysis/hits_sg_v64_e64.cu
src/link_analysis/hits_sg_v32_e32.cu
src/link_analysis/hits_mg_v64_e64.cu
src/link_analysis/hits_mg_v32_e32.cu
src/link_analysis/pagerank_sg_v64_e64.cu
src/link_analysis/pagerank_sg_v32_e32.cu
src/link_analysis/pagerank_mg_v64_e64.cu
src/link_analysis/pagerank_mg_v32_e32.cu
)
endif() # BUILD_CUGRAPH_LINK_ANALYSIS_ALGORITHMS

if (BUILD_CUGRAPH_LINK_PREDICTION_ALGORITHMS)
list(APPEND CUGRAPH_SOURCES
src/link_prediction/jaccard_sg_v64_e64.cu
src/link_prediction/jaccard_sg_v32_e32.cu
src/link_prediction/sorensen_sg_v64_e64.cu
src/link_prediction/sorensen_sg_v32_e32.cu
src/link_prediction/overlap_sg_v64_e64.cu
src/link_prediction/overlap_sg_v32_e32.cu
src/link_prediction/cosine_sg_v64_e64.cu
src/link_prediction/cosine_sg_v32_e32.cu
src/link_prediction/jaccard_mg_v64_e64.cu
src/link_prediction/jaccard_mg_v32_e32.cu
src/link_prediction/sorensen_mg_v64_e64.cu
src/link_prediction/sorensen_mg_v32_e32.cu
src/link_prediction/overlap_mg_v64_e64.cu
src/link_prediction/overlap_mg_v32_e32.cu
src/link_prediction/cosine_mg_v64_e64.cu
src/link_prediction/cosine_mg_v32_e32.cu
)
endif() # BUILD_CUGRAPH_LINK_PREDICTION_ALGORITHMS

if (BUILD_CUGRAPH_TRAVERSAL_ALGORITHMS)
list(APPEND CUGRAPH_SOURCES
src/traversal/extract_bfs_paths_sg_v64_e64.cu
src/traversal/extract_bfs_paths_sg_v32_e32.cu
src/traversal/extract_bfs_paths_mg_v64_e64.cu
src/traversal/extract_bfs_paths_mg_v32_e32.cu
src/traversal/bfs_sg_v64_e64.cu
src/traversal/bfs_sg_v32_e32.cu
src/traversal/bfs_mg_v64_e64.cu
src/traversal/bfs_mg_v32_e32.cu
src/traversal/sssp_sg_v64_e64.cu
src/traversal/sssp_sg_v32_e32.cu
src/traversal/od_shortest_distances_sg_v64_e64.cu
src/traversal/od_shortest_distances_sg_v32_e32.cu
src/traversal/sssp_mg_v64_e64.cu
src/traversal/sssp_mg_v32_e32.cu
src/traversal/k_hop_nbrs_sg_v64_e64.cu
src/traversal/k_hop_nbrs_sg_v32_e32.cu
src/traversal/k_hop_nbrs_mg_v64_e64.cu
src/traversal/k_hop_nbrs_mg_v32_e32.cu
)
endif() # BUILD_CUGRAPH_TRAVERSAL_ALGORITHMS

if (BUILD_CUGRAPH_SAMPLING_ALGORITHMS)
list(APPEND CUGRAPH_SOURCES
src/sampling/random_walks_old_sg_v32_e32.cu
src/sampling/random_walks_old_sg_v64_e64.cu
src/sampling/random_walks_sg_v64_e64.cu
src/sampling/random_walks_sg_v32_e32.cu
src/sampling/detail/prepare_next_frontier_sg_v64_e64.cu
src/sampling/detail/prepare_next_frontier_sg_v32_e32.cu
src/sampling/detail/prepare_next_frontier_mg_v64_e64.cu
src/sampling/detail/prepare_next_frontier_mg_v32_e32.cu
src/sampling/detail/gather_one_hop_edgelist_sg_v64_e64.cu
src/sampling/detail/gather_one_hop_edgelist_sg_v32_e32.cu
src/sampling/detail/gather_one_hop_edgelist_mg_v64_e64.cu
src/sampling/detail/gather_one_hop_edgelist_mg_v32_e32.cu
src/sampling/detail/remove_visited_vertices_from_frontier_sg_v32_e32.cu
src/sampling/detail/remove_visited_vertices_from_frontier_sg_v64_e64.cu
src/sampling/detail/check_edge_bias_values_sg_v64_e64.cu
src/sampling/detail/check_edge_bias_values_sg_v32_e32.cu
src/sampling/detail/check_edge_bias_values_mg_v64_e64.cu
src/sampling/detail/check_edge_bias_values_mg_v32_e32.cu
src/sampling/detail/sample_edges_sg_v64_e64.cu
src/sampling/detail/sample_edges_sg_v32_e32.cu
src/sampling/detail/sample_edges_mg_v64_e64.cu
src/sampling/detail/sample_edges_mg_v32_e32.cu
src/sampling/detail/shuffle_and_organize_output_mg_v64_e64.cu
src/sampling/detail/shuffle_and_organize_output_mg_v32_e32.cu
src/sampling/neighbor_sampling_mg_v32_e32.cu
src/sampling/neighbor_sampling_mg_v64_e64.cu
src/sampling/neighbor_sampling_sg_v32_e32.cu
src/sampling/neighbor_sampling_sg_v64_e64.cu
src/sampling/negative_sampling_sg_v32_e32.cu
src/sampling/negative_sampling_sg_v64_e64.cu
src/sampling/negative_sampling_mg_v32_e32.cu
src/sampling/negative_sampling_mg_v64_e64.cu
src/sampling/sampling_post_processing_sg_v64_e64.cu
src/sampling/sampling_post_processing_sg_v32_e32.cu
src/sampling/detail/conversion_utilities.cu
src/sampling/random_walks_mg_v64_e64.cu
src/sampling/random_walks_mg_v32_e32.cu
)
endif()

if (BUILD_CUGRAPH_CENTRALITY_ALGORITHMS)
list(APPEND CUGRAPH_SOURCES
src/centrality/katz_centrality_sg_v64_e64.cu
src/centrality/katz_centrality_sg_v32_e32.cu
src/centrality/katz_centrality_mg_v64_e64.cu
src/centrality/katz_centrality_mg_v32_e32.cu
src/centrality/eigenvector_centrality_sg_v64_e64.cu
src/centrality/eigenvector_centrality_sg_v32_e32.cu
src/centrality/eigenvector_centrality_mg_v64_e64.cu
src/centrality/eigenvector_centrality_mg_v32_e32.cu
src/centrality/betweenness_centrality_sg_v64_e64.cu
src/centrality/betweenness_centrality_sg_v32_e32.cu
src/centrality/betweenness_centrality_mg_v64_e64.cu
src/centrality/betweenness_centrality_mg_v32_e32.cu
)
endif()

if (BUILD_CUGRAPH_COMMUNITY_ALGORITHMS)
list(APPEND CUGRAPH_SOURCES
src/community/detail/common_methods_mg_v64_e64.cu
src/community/detail/common_methods_mg_v32_e32.cu
src/community/detail/common_methods_sg_v64_e64.cu
src/community/detail/common_methods_sg_v32_e32.cu
src/community/detail/refine_sg_v64_e64.cu
src/community/detail/refine_sg_v32_e32.cu
src/community/detail/refine_mg_v64_e64.cu
src/community/detail/refine_mg_v32_e32.cu
src/community/edge_triangle_count_sg_v64_e64.cu
src/community/edge_triangle_count_sg_v32_e32.cu
src/community/edge_triangle_count_mg_v64_e64.cu
src/community/edge_triangle_count_mg_v32_e32.cu
src/community/detail/maximal_independent_moves_sg_v64_e64.cu
src/community/detail/maximal_independent_moves_sg_v32_e32.cu
src/community/detail/maximal_independent_moves_mg_v64_e64.cu
src/community/detail/maximal_independent_moves_mg_v32_e32.cu
src/community/legacy/spectral_clustering.cu
src/community/louvain_sg_v64_e64.cu
src/community/louvain_sg_v32_e32.cu
src/community/louvain_mg_v64_e64.cu
src/community/louvain_mg_v32_e32.cu
src/community/leiden_sg_v64_e64.cu
src/community/leiden_sg_v32_e32.cu
src/community/leiden_mg_v64_e64.cu
src/community/leiden_mg_v32_e32.cu
src/community/ecg_sg_v64_e64.cu
src/community/ecg_sg_v32_e32.cu
src/community/ecg_mg_v64_e64.cu
src/community/ecg_mg_v32_e32.cu
src/community/egonet_sg_v64_e64.cu
src/community/egonet_sg_v32_e32.cu
src/community/egonet_mg_v64_e64.cu
src/community/egonet_mg_v32_e32.cu
src/community/k_truss_sg_v64_e64.cu
src/community/k_truss_sg_v32_e32.cu
src/community/k_truss_mg_v64_e64.cu
src/community/k_truss_mg_v32_e32.cu

src/community/triangle_count_sg_v64_e64.cu
src/community/triangle_count_sg_v32_e32.cu
src/community/triangle_count_mg_v64_e64.cu
src/community/triangle_count_mg_v32_e32.cu
src/community/approx_weighted_matching_sg_v64_e64.cu
src/community/approx_weighted_matching_sg_v32_e32.cu
src/community/approx_weighted_matching_mg_v64_e64.cu
src/community/approx_weighted_matching_mg_v32_e32.cu
)
endif()



add_library(cugraph ${CUGRAPH_SOURCES})

set_target_properties(cugraph
Expand Down
2 changes: 1 addition & 1 deletion cpp/src/prims/detail/per_v_transform_reduce_e.cuh
Original file line number Diff line number Diff line change
Expand Up @@ -1610,7 +1610,7 @@ void per_v_transform_reduce_e(raft::handle_t const& handle,
edge_partition.major_range_first(),
handle.get_stream());
assert((*key_segment_offsets).back() == *((*key_segment_offsets).rbegin() + 1));
assert(sorted_uniue_nzd_key_last == sorted_unique_key_first + (*key_segment_offsets).back());
assert(sorted_unique_nzd_key_last == sorted_unique_key_first + (*key_segment_offsets).back());
}
} else {
tmp_vertex_value_output_first = vertex_value_output_first;
Expand Down
4 changes: 2 additions & 2 deletions cpp/src/prims/vertex_frontier.cuh
Original file line number Diff line number Diff line change
Expand Up @@ -227,8 +227,8 @@ void retrieve_vertex_list_from_bitmap(
{
using vertex_t = typename thrust::iterator_traits<OutputVertexIterator>::value_type;

assert((comm.get_rank() != root) ||
(bitmap.size() >= packed_bool_size(vertex_range_last - vertex_ragne_first)));
//assert((comm.get_rank() != root) ||
// (bitmap.size() >= packed_bool_size(vertex_range_last - vertex_ragne_first)));
detail::copy_if_nosync(thrust::make_counting_iterator(vertex_range_first),
thrust::make_counting_iterator(vertex_range_last),
thrust::make_transform_iterator(
Expand Down
Loading

0 comments on commit 22b54cc

Please sign in to comment.