Skip to content
Draft
Show file tree
Hide file tree
Changes from 2 commits
Commits
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
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)
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe it's cleaner to define CUGRAPH_CENTRALITY_SOURCES, CUGRAPH_COMMON_SOURCES, etc.... and then append at the end ?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems cleaner to me. Define CUGRAPH_CENTRALITY_SOURCES as empty if BUILD_CUGRAPH_CENTRALITY_ALGORITHMS is not defined, define it with the actual sources if it is defined. Then when you fill in CUGRAPH_SOURCES you can just include the variable ${CUGRAPH_CENTRALITY_SOURCES} in its definition.

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
Loading
Loading