diff --git a/.gitignore b/.gitignore index 3fda9f8a037..c5b7fa5e84a 100644 --- a/.gitignore +++ b/.gitignore @@ -95,5 +95,6 @@ python/cugraph/cugraph/tests/dask-worker-space # Sphinx docs & build artifacts docs/cugraph/source/api_docs/api/* +docs/cugraph/libcugraph _html _text diff --git a/build.sh b/build.sh index 8dca89aeedd..f84bc3ca512 100755 --- a/build.sh +++ b/build.sh @@ -22,12 +22,14 @@ REPODIR=$(cd $(dirname $0); pwd) VALIDARGS=" clean uninstall + all libcugraph libcugraph_etl - cugraph - cugraph-service pylibcugraph + cugraph cpp-mgtests + cugraph-service + cugraph-nx cugraph-pyg cugraph-dgl nx-cugraph @@ -49,14 +51,15 @@ HELP="$0 [ ...] [ ...] where is: clean - remove all existing build artifacts and configuration (start over) uninstall - uninstall libcugraph and cugraph from a prior build/install (see also -n) + all - build every target libcugraph - build libcugraph.so and SG test binaries libcugraph_etl - build libcugraph_etl.so and SG test binaries pylibcugraph - build the pylibcugraph Python package - cugraph-pyg - build the cugraph-pyg Python package cugraph - build the cugraph Python package - nx-cugraph - build the nx-cugraph Python package - cugraph-service - build the cugraph-service_client and cugraph-service_server Python package cpp-mgtests - build libcugraph and libcugraph_etl MG tests. Builds MPI communicator, adding MPI as a dependency. + cugraph-service - build the cugraph-service_client and cugraph-service_server Python package + nx-cugraph - build the nx-cugraph Python package + cugraph-pyg - build the cugraph-pyg Python package cugraph-dgl - build the cugraph-dgl extensions for DGL docs - build the docs and is: @@ -71,7 +74,7 @@ HELP="$0 [ ...] [ ...] --clean - clean an individual target (note: to do a complete rebuild, use the clean target described above) -h - print this text - default action (no args) is to build and install 'libcugraph' then 'libcugraph_etl' then 'pylibcugraph' then 'cugraph' targets + default action (no args) is to build and install 'libcugraph' then 'pylibcugraph' then 'cugraph' targets libcugraph build dir is: ${LIBCUGRAPH_BUILD_DIR} @@ -119,8 +122,8 @@ function hasArg { (( ${NUMARGS} != 0 )) && (echo " ${ARGS} " | grep -q " $1 ") } -function buildAll { - (( ${NUMARGS} == 0 )) || !(echo " ${ARGS} " | grep -q " [^-][a-zA-Z0-9\_\-]\+ ") +function noTargets { + (( ${NUMARGS} == 0 )) || !(echo " ${ARGS} " | grep -q " [^-][a-zA-Z0-9\_\-]* ") } function cleanPythonDir { @@ -170,7 +173,7 @@ fi if hasArg --without_cugraphops; then BUILD_WITH_CUGRAPHOPS=OFF fi -if hasArg cpp-mgtests; then +if hasArg cpp-mgtests || hasArg all; then BUILD_CPP_MG_TESTS=ON fi if hasArg --cmake_default_generator; then @@ -234,13 +237,23 @@ if hasArg clean; then rmdir ${bd} || true fi done + + # Doc cleanup + rm -rf ${REPODIR}/docs/cugraph/libcugraph + rm -rf ${REPODIR}/docs/cugraph/build + # Go back to failing on first error for all other operations set -e fi +################################################################################ +# Process in the order that things should be built +################################################################################ + + ################################################################################ # Configure, build, and install libcugraph -if buildAll || hasArg libcugraph; then +if hasArg libcugraph || hasArg all || noTargets; then if hasArg --clean; then if [ -d ${LIBCUGRAPH_BUILD_DIR} ]; then find ${LIBCUGRAPH_BUILD_DIR} -mindepth 1 -delete @@ -270,7 +283,7 @@ if buildAll || hasArg libcugraph; then fi # Configure, build, and install libcugraph_etl -if buildAll || hasArg libcugraph_etl; then +if hasArg libcugraph_etl || hasArg all; then if hasArg --clean; then if [ -d ${LIBCUGRAPH_ETL_BUILD_DIR} ]; then find ${LIBCUGRAPH_ETL_BUILD_DIR} -mindepth 1 -delete @@ -301,7 +314,7 @@ if buildAll || hasArg libcugraph_etl; then fi # Build, and install pylibcugraph -if buildAll || hasArg pylibcugraph; then +if hasArg pylibcugraph || hasArg all || noTargets; then if hasArg --clean; then cleanPythonDir ${REPODIR}/python/pylibcugraph else @@ -328,7 +341,7 @@ if buildAll || hasArg pylibcugraph; then fi # Build and install the cugraph Python package -if buildAll || hasArg cugraph; then +if hasArg cugraph || hasArg all || noTargets; then if hasArg --clean; then cleanPythonDir ${REPODIR}/python/cugraph else @@ -355,7 +368,7 @@ if buildAll || hasArg cugraph; then fi # Install the cugraph-service-client and cugraph-service-server Python packages -if hasArg cugraph-service; then +if hasArg all || hasArg cugraph-service; then if hasArg --clean; then cleanPythonDir ${REPODIR}/python/cugraph-service else @@ -364,8 +377,17 @@ if hasArg cugraph-service; then fi fi +# Build and install the cugraph-nx Python package +if hasArg all || hasArg nx-cugraph; then + if hasArg --clean; then + cleanPythonDir ${REPODIR}/python/nx-cugraph + else + python ${PYTHON_ARGS_FOR_INSTALL} ${REPODIR}/python/nx-cugraph + fi +fi + # Build and install the cugraph-pyg Python package -if hasArg cugraph-pyg; then +if hasArg all || hasArg cugraph-pyg; then if hasArg --clean; then cleanPythonDir ${REPODIR}/python/cugraph-pyg else @@ -374,7 +396,7 @@ if hasArg cugraph-pyg; then fi # Install the cugraph-dgl extensions for DGL -if hasArg cugraph-dgl; then +if hasArg all || hasArg cugraph-dgl; then if hasArg --clean; then cleanPythonDir ${REPODIR}/python/cugraph-dgl else @@ -382,17 +404,10 @@ if hasArg cugraph-dgl; then fi fi -# Build and install the nx-cugraph Python package -if hasArg nx-cugraph; then - if hasArg --clean; then - cleanPythonDir ${REPODIR}/python/nx-cugraph - else - python ${PYTHON_ARGS_FOR_INSTALL} ${REPODIR}/python/nx-cugraph - fi -fi # Build the docs -if hasArg docs; then +# - build the CPP docs first using doxygen, then create the Python docs +if hasArg all || hasArg docs; then if [ ! -d ${LIBCUGRAPH_BUILD_DIR} ]; then mkdir -p ${LIBCUGRAPH_BUILD_DIR} cd ${LIBCUGRAPH_BUILD_DIR} @@ -402,8 +417,20 @@ if hasArg docs; then ${CMAKE_GENERATOR_OPTION} \ ${CMAKE_VERBOSE_OPTION} fi + cd ${LIBCUGRAPH_BUILD_DIR} cmake --build "${LIBCUGRAPH_BUILD_DIR}" -j${PARALLEL_LEVEL} --target docs_cugraph ${VERBOSE_FLAG} + + if [ -d ${REPODIR}/docs/cugraph/libcugraph ]; then + echo "removing libcugraph docs dir" + rm -r ${REPODIR}/docs/cugraph/libcugraph + fi + echo "making libcugraph doc dir" + mkdir -p ${REPODIR}/docs/cugraph/libcugraph + + mv ${REPODIR}/cpp/doxygen/xml ${REPODIR}/docs/cugraph/libcugraph/_xml + mv ${REPODIR}/cpp/doxygen/html ${REPODIR}/docs/cugraph/libcugraph/html + cd ${REPODIR}/docs/cugraph make html fi diff --git a/ci/build_docs.sh b/ci/build_docs.sh index 2941d062d80..f4a42133e6f 100755 --- a/ci/build_docs.sh +++ b/ci/build_docs.sh @@ -29,7 +29,8 @@ rapids-mamba-retry install \ cugraph-pyg \ cugraph-service-server \ cugraph-service-client \ - libcugraph_etl + libcugraph_etl \ + pylibcugraphops # This command installs `cugraph-dgl` without its dependencies # since this package can currently only run in `11.6` CTK environments @@ -45,6 +46,8 @@ pushd cpp/doxygen doxygen Doxyfile mkdir -p "${RAPIDS_DOCS_DIR}/libcugraph/html" mv html/* "${RAPIDS_DOCS_DIR}/libcugraph/html" +mkdir -p "${RAPIDS_DOCS_DIR}/libcugraph/_xml" +mv xml/* "${RAPIDS_DOCS_DIR}/libcugraph/_xml" popd rapids-logger "Build Python docs" @@ -52,8 +55,12 @@ pushd docs/cugraph # Ensure cugraph is importable, since sphinx does not report details about this # type of failure well. python -c "import cugraph; print(f'Using cugraph: {cugraph}')" -sphinx-build -b dirhtml source _html -sphinx-build -b text source _text +echo "Running sphinx-build -v -b dirhtml source _html" +sphinx-build -v -b dirhtml source _html +echo "done." +echo "Running sphinx-build -v -b text source _text" +sphinx-build -v -b text source _text +echo "done." mkdir -p "${RAPIDS_DOCS_DIR}/cugraph/"{html,txt} mv _html/* "${RAPIDS_DOCS_DIR}/cugraph/html" mv _text/* "${RAPIDS_DOCS_DIR}/cugraph/txt" diff --git a/conda/environments/all_cuda-118_arch-x86_64.yaml b/conda/environments/all_cuda-118_arch-x86_64.yaml index c66890f8ae5..d66df0c0f18 100644 --- a/conda/environments/all_cuda-118_arch-x86_64.yaml +++ b/conda/environments/all_cuda-118_arch-x86_64.yaml @@ -11,6 +11,7 @@ channels: - nvidia dependencies: - aiohttp +- breathe - c-compiler - cmake>=3.26.4 - cuda-version=11.8 @@ -70,6 +71,7 @@ dependencies: - sphinx-markdown-tables - sphinx<6 - sphinxcontrib-websupport +- thriftpy2>=0.4.15 - ucx-proc=*=gpu - ucx-py==0.34.* name: all_cuda-118_arch-x86_64 diff --git a/conda/environments/all_cuda-120_arch-x86_64.yaml b/conda/environments/all_cuda-120_arch-x86_64.yaml index 3afb1415572..56db77b8ce1 100644 --- a/conda/environments/all_cuda-120_arch-x86_64.yaml +++ b/conda/environments/all_cuda-120_arch-x86_64.yaml @@ -11,6 +11,7 @@ channels: - nvidia dependencies: - aiohttp +- breathe - c-compiler - cmake>=3.26.4 - cuda-nvcc @@ -69,6 +70,7 @@ dependencies: - sphinx-markdown-tables - sphinx<6 - sphinxcontrib-websupport +- thriftpy2>=0.4.15 - ucx-proc=*=gpu - ucx-py==0.34.* name: all_cuda-120_arch-x86_64 diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt index 0d7bd86075d..4b78c938125 100644 --- a/cpp/CMakeLists.txt +++ b/cpp/CMakeLists.txt @@ -412,7 +412,7 @@ add_library(cugraph_c src/c_api/core_result.cpp src/c_api/extract_ego.cpp src/c_api/k_core.cpp - src/c_api/hierarchical_clustering_result.cpp + src/c_api/hierarchical_clustering_result.cpp src/c_api/induced_subgraph.cpp src/c_api/capi_helper.cu src/c_api/legacy_spectral.cpp diff --git a/cpp/doxygen/Doxyfile b/cpp/doxygen/Doxyfile index eb414925388..b663d7d9e9e 100644 --- a/cpp/doxygen/Doxyfile +++ b/cpp/doxygen/Doxyfile @@ -1991,7 +1991,7 @@ MAN_LINKS = NO # captures the structure of the code including all documentation. # The default value is: NO. -GENERATE_XML = NO +GENERATE_XML = YES # The XML_OUTPUT tag is used to specify where the XML pages will be put. If a # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of diff --git a/cpp/include/cugraph/algorithms.hpp b/cpp/include/cugraph/algorithms.hpp index b624ec5c0e0..aaa42d30520 100644 --- a/cpp/include/cugraph/algorithms.hpp +++ b/cpp/include/cugraph/algorithms.hpp @@ -37,12 +37,25 @@ #include /** @ingroup cpp_api - * @{ + */ + +/** + * @defgroup assignmentCPP + * @defgroup centralityCPP + * @defgroup communityCPP + * @defgroup coreCPP + * @defgroup labelingCPP + * @defgroup placementCPP + * @defgroup samplingCPP + * @defgroup similarityCPP + * @defgroup traversalCPP + * @defgroup treeCPP */ namespace cugraph { /** + * @ingroup similarityCPP * @brief Compute jaccard similarity coefficient for all vertices * * Computes the Jaccard similarity coefficient for every pair of vertices in the graph @@ -64,6 +77,7 @@ template void jaccard(legacy::GraphCSRView const& graph, WT const* weights, WT* result); /** + * @ingroup similarityCPP * @brief Compute jaccard similarity coefficient for selected vertex pairs * * Computes the Jaccard similarity coefficient for each pair of specified vertices. @@ -93,6 +107,7 @@ void jaccard_list(legacy::GraphCSRView const& graph, WT* result); /** + * @ingroup similarityCPP * @brief Compute overlap coefficient for all vertices in the graph * * Computes the Overlap Coefficient for every pair of vertices in the graph which are @@ -114,6 +129,7 @@ template void overlap(legacy::GraphCSRView const& graph, WT const* weights, WT* result); /** + * @ingroup similarityCPP * @brief Compute overlap coefficient for select pairs of vertices * * Computes the overlap coefficient for each pair of specified vertices. @@ -143,7 +159,7 @@ void overlap_list(legacy::GraphCSRView const& graph, WT* result); /** - * + * @ingroup placementCPP * @brief ForceAtlas2 is a continuous graph layout algorithm * for handy network visualization. * @@ -216,6 +232,7 @@ void force_atlas2(raft::handle_t const& handle, internals::GraphBasedDimRedCallback* callback = nullptr); /** + * @ingroup centralityCPP * @brief Compute betweenness centrality for a graph * * Betweenness centrality for a vertex is the sum of the fraction of @@ -263,6 +280,7 @@ void betweenness_centrality(const raft::handle_t& handle, vertex_t const* vertices = nullptr); /** + * @ingroup centralityCPP * @brief Compute edge betweenness centrality for a graph * * Betweenness centrality of an edge is the sum of the fraction of all-pairs shortest paths that @@ -306,6 +324,7 @@ void edge_betweenness_centrality(const raft::handle_t& handle, vertex_t const* vertices = nullptr); /** + * @ingroup centralityCPP * @brief Compute betweenness centrality for a graph * * Betweenness centrality for a vertex is the sum of the fraction of @@ -350,6 +369,7 @@ rmm::device_uvector betweenness_centrality( bool const do_expensive_check = false); /** + * @ingroup centralityCPP * @brief Compute edge betweenness centrality for a graph * * Betweenness centrality of an edge is the sum of the fraction of all-pairs shortest paths that @@ -396,6 +416,7 @@ enum class cugraph_cc_t { }; /** + * @ingroup labelingCPP * @brief Compute connected components. * * The weak version (for undirected graphs, only) was imported from cuML. @@ -430,6 +451,7 @@ void connected_components(legacy::GraphCSRView const& graph, VT* labels); /** + * @ingroup communityCPP * @brief Compute k truss for a graph * * K Truss is the maximal subgraph of a graph which contains at least three @@ -463,6 +485,7 @@ std::unique_ptr> k_truss_subgraph( // template uses data from VT, ET, WT from the legacy::GraphCSR View even if weights // are not considered /** + * @ingroup traversalCPP * @Synopsis Performs a breadth first search traversal of a graph starting from a vertex. * * @throws cugraph::logic_error with a custom message when an error occurs. @@ -505,6 +528,7 @@ void bfs(raft::handle_t const& handle, bool mg_batch = false); /** + * @ingroup assignmentCPP * @brief Compute Hungarian algorithm on a weighted bipartite graph * * The Hungarian algorithm computes an assigment of "jobs" to "workers". This function accepts @@ -537,6 +561,7 @@ weight_t hungarian(raft::handle_t const& handle, vertex_t* assignments); /** + * @ingroup assignmentCPP * @brief Compute Hungarian algorithm on a weighted bipartite graph * * The Hungarian algorithm computes an assigment of "jobs" to "workers". This function accepts @@ -571,6 +596,7 @@ weight_t hungarian(raft::handle_t const& handle, weight_t epsilon); /** + * @ingroup communityCPP * @brief Louvain implementation * * Compute a clustering of the graph by maximizing modularity @@ -621,6 +647,7 @@ std::pair louvain( weight_t resolution = weight_t{1}); /** + * @ingroup communityCPP * @brief Louvain implementation, returning dendrogram * * Compute a clustering of the graph by maximizing modularity @@ -659,6 +686,7 @@ std::pair>, weight_t> louvain( weight_t resolution = weight_t{1}); /** + * @ingroup communityCPP * @brief Flatten a Dendrogram at a particular level * * A Dendrogram represents a hierarchical clustering/partitioning of @@ -683,6 +711,7 @@ void flatten_dendrogram(raft::handle_t const& handle, typename graph_view_t::vertex_type* clustering); /** + * @ingroup communityCPP * @brief Leiden implementation * * Compute a clustering of the graph by maximizing modularity using the Leiden improvements @@ -735,6 +764,7 @@ std::pair>, weight_t> leiden( weight_t theta = weight_t{1}); /** + * @ingroup communityCPP * @brief Leiden implementation * * Compute a clustering of the graph by maximizing modularity using the Leiden improvements @@ -788,6 +818,7 @@ std::pair leiden( weight_t theta = weight_t{1}); /** + * @ingroup communityCPP * @brief Computes the ecg clustering of the given graph. * * ECG runs truncated Louvain on an ensemble of permutations of the input graph, @@ -820,6 +851,7 @@ void ecg(raft::handle_t const& handle, vertex_t* clustering); /** + * @ingroup treeCPP * @brief Generate edges in a minimum spanning forest of an undirected weighted graph. * * A minimum spanning tree is a subgraph of the graph (a tree) with the minimum sum of edge weights. @@ -872,6 +904,7 @@ std::unique_ptr> extract_subgraph_vertex( } // namespace subgraph /** + * @ingroup communityCPP * @brief Wrapper function for Nvgraph balanced cut clustering * * @throws cugraph::logic_error when an error occurs. @@ -905,6 +938,7 @@ void balancedCutClustering(legacy::GraphCSRView const& graph, VT* clustering); /** + * @ingroup communityCPP * @brief Wrapper function for Nvgraph spectral modularity maximization algorithm * * @throws cugraph::logic_error when an error occurs. @@ -936,6 +970,7 @@ void spectralModularityMaximization(legacy::GraphCSRView const& grap VT* clustering); /** + * @ingroup communityCPP * @brief Wrapper function for Nvgraph clustering modularity metric * * @throws cugraph::logic_error when an error occurs. @@ -980,6 +1015,7 @@ void analyzeClustering_edge_cut(legacy::GraphCSRView const& graph, WT* score); /** + * @ingroup communityCPP * @brief Wrapper function for Nvgraph clustering ratio cut metric * * @throws cugraph::logic_error when an error occurs. @@ -1005,6 +1041,7 @@ void analyzeClustering_ratio_cut(legacy::GraphCSRView const& graph, namespace dense { /** + * @ingroup assignmentCPP * @brief Compute Hungarian algorithm on a weighted bipartite graph * * The Hungarian algorithm computes an assigment of "jobs" to "workers". This function accepts @@ -1068,6 +1105,7 @@ weight_t hungarian(raft::handle_t const& handle, } // namespace dense /** + * @ingroup traversalCPP * @brief Run breadth-first search to find the distances (and predecessors) from the source * vertex. * @@ -1110,6 +1148,7 @@ void bfs(raft::handle_t const& handle, bool do_expensive_check = false); /** + * @ingroup traversalCPP * @brief Extract paths from breadth-first search output * * This function extracts paths from the BFS output. BFS outputs distances @@ -1147,6 +1186,7 @@ std::tuple, vertex_t> extract_bfs_paths( size_t n_destinations); /** + * @ingroup traversalCPP * @brief Run single-source shortest-path to compute the minimum distances (and predecessors) from * the source vertex. * @@ -1184,6 +1224,7 @@ void sssp(raft::handle_t const& handle, bool do_expensive_check = false); /* + * @ingroup traversalCPP * @brief Compute the shortest distances from the given origins to all the given destinations. * * This algorithm is designed for large diameter graphs. For small diameter graphs, running the @@ -1223,6 +1264,7 @@ rmm::device_uvector od_shortest_distances( bool do_expensive_check = false); /** + * @ingroup centralityCPP * @brief Compute PageRank scores. * * @deprecated This API will be deprecated to replaced by the new version below @@ -1284,6 +1326,7 @@ void pagerank(raft::handle_t const& handle, bool do_expensive_check = false); /** + * @ingroup centralityCPP * @brief Metadata about the execution of one of the centrality algorithms */ // FIXME: This structure should be propagated to other algorithms that converge @@ -1295,6 +1338,7 @@ struct centrality_algorithm_metadata_t { }; /** + * @ingroup centralityCPP * @brief Compute PageRank scores. * * This function computes general (if @p personalization_vertices is `nullptr`) or personalized (if @@ -1352,6 +1396,7 @@ std::tuple, centrality_algorithm_metadata_t> pager bool do_expensive_check = false); /** + * @ingroup centralityCPP * @brief Compute Eigenvector Centrality scores. * * This function computes eigenvector centrality scores using the power method. @@ -1389,6 +1434,7 @@ rmm::device_uvector eigenvector_centrality( bool do_expensive_check = false); /** + * @ingroup centralityCPP * @brief Compute HITS scores. * * This function computes HITS scores for the vertices of a graph @@ -1428,6 +1474,7 @@ std::tuple hits(raft::handle_t const& handle, bool do_expensive_check); /** + * @ingroup centralityCPP * @brief Compute Katz Centrality scores. * * This function computes Katz Centrality scores. @@ -1480,6 +1527,7 @@ void katz_centrality(raft::handle_t const& handle, bool do_expensive_check = false); /** + * @ingroup samplingCPP * @brief returns induced EgoNet subgraph(s) of neighbors centered at nodes in source_vertex within * a given radius. * @@ -1515,6 +1563,7 @@ extract_ego(raft::handle_t const& handle, vertex_t radius); /** + * @ingroup samplingCPP * @brief returns induced EgoNet subgraph(s) of neighbors centered at nodes in source_vertex within * a given radius. * @@ -1548,6 +1597,7 @@ extract_ego(raft::handle_t const& handle, bool do_expensive_check = false); /** + * @ingroup samplingCPP * @brief returns random walks (RW) from starting sources, where each path is of given maximum * length. Uniform distribution is assumed for the random engine. * @@ -1592,6 +1642,7 @@ std:: std::unique_ptr sampling_strategy = nullptr); /** + * @ingroup samplingCPP * @brief returns uniform random walks from starting sources, where each path is of given * maximum length. * @@ -1637,6 +1688,7 @@ uniform_random_walks(raft::handle_t const& handle, uint64_t seed = std::numeric_limits::max()); /** + * @ingroup samplingCPP * @brief returns biased random walks from starting sources, where each path is of given * maximum length. * @@ -1681,6 +1733,7 @@ biased_random_walks(raft::handle_t const& handle, uint64_t seed = std::numeric_limits::max()); /** + * @ingroup samplingCPP * @brief returns biased random walks with node2vec biases from starting sources, * where each path is of given maximum length. * @@ -1731,6 +1784,7 @@ node2vec_random_walks(raft::handle_t const& handle, #ifndef NO_CUGRAPH_OPS /** + * @ingroup samplingCPP * @brief generate sub-sampled graph as an adjacency list (CSR format) given input graph, * list of vertices and sample size per vertex. The output graph consists of the given * vertices with each vertex having at most `sample_size` neighbors from the original graph @@ -1761,6 +1815,7 @@ sample_neighbors_adjacency_list(raft::handle_t const& handle, ops::graph::SamplingAlgoT sampling_algo); /** + * @ingroup samplingCPP * @brief generate sub-sampled graph as an edge list (COO format) given input graph, * list of vertices and sample size per vertex. The output graph consists of the given * vertices with each vertex having at most `sample_size` neighbors from the original graph @@ -1792,6 +1847,7 @@ std::tuple, rmm::device_uvector> sample_ #endif /** + * @ingroup labelingCPP * @brief Finds (weakly-connected-)component IDs of each vertices in the input graph. * * The input graph must be symmetric. Component IDs can be arbitrary integers (they can be @@ -1820,6 +1876,7 @@ void weakly_connected_components(raft::handle_t const& handle, enum class k_core_degree_type_t { IN = 0, OUT = 1, INOUT = 2 }; /** + * @ingroup coreCPP * @brief Compute core numbers of individual vertices from K-core decomposition. * * The input graph should not have self-loops nor multi-edges. Currently, only undirected graphs are @@ -1851,6 +1908,7 @@ void core_number(raft::handle_t const& handle, bool do_expensive_check = false); /** + * @ingroup coreCPP * @brief Extract K Core of a graph * * @throws cugraph::logic_error when an error occurs. @@ -1895,6 +1953,7 @@ k_core(raft::handle_t const& handle, enum class prior_sources_behavior_t { DEFAULT = 0, CARRY_OVER, EXCLUDE }; /** + * @ingroup samplingCPP * @brief Uniform Neighborhood Sampling. * * This function traverses from a set of starting vertices, traversing outgoing edges and @@ -1993,6 +2052,7 @@ uniform_neighbor_sample( bool do_expensive_check = false); /* + * @ingroup communityCPP * @brief Compute triangle counts. * * Compute triangle counts for the entire set of vertices (if @p vertices is std::nullopt) or the @@ -2019,6 +2079,7 @@ void triangle_count(raft::handle_t const& handle, bool do_expensive_check = false); /** + * @ingroup similarityCPP * @brief Compute Jaccard similarity coefficient * * Similarity is computed for every pair of vertices specified. Note that @@ -2050,6 +2111,7 @@ rmm::device_uvector jaccard_coefficients( bool do_expensive_check = false); /** + * @ingroup similarityCPP * @brief Compute Sorensen similarity coefficient * * Similarity is computed for every pair of vertices specified. Note that @@ -2082,6 +2144,7 @@ rmm::device_uvector sorensen_coefficients( bool do_expensive_check = false); /** + * @ingroup similarityCPP * @brief Compute overlap similarity coefficient * * Similarity is computed for every pair of vertices specified. Note that @@ -2162,7 +2225,3 @@ rmm::device_uvector maximal_independent_set( raft::random::RngState& rng_state); } // namespace cugraph - -/** - * @} - */ diff --git a/cpp/include/cugraph_c/centrality_algorithms.h b/cpp/include/cugraph_c/centrality_algorithms.h index 0ac0e58540f..fb5d4b63b9c 100644 --- a/cpp/include/cugraph_c/centrality_algorithms.h +++ b/cpp/include/cugraph_c/centrality_algorithms.h @@ -23,8 +23,6 @@ #include /** @defgroup centrality Centrality algorithms - * @ingroup c_api - * @{ */ #ifdef __cplusplus @@ -39,7 +37,8 @@ typedef struct { } cugraph_centrality_result_t; /** - * @brief Get the vertex ids from the centrality result + * @ingroup centrality + * @brief Get the vertex ids from the centrality result * * @param [in] result The result from a centrality algorithm * @return type erased array of vertex ids @@ -48,7 +47,8 @@ cugraph_type_erased_device_array_view_t* cugraph_centrality_result_get_vertices( cugraph_centrality_result_t* result); /** - * @brief Get the centrality values from a centrality algorithm result + * @ingroup centrality + * @brief Get the centrality values from a centrality algorithm result * * @param [in] result The result from a centrality algorithm * @return type erased array view of centrality values @@ -57,6 +57,7 @@ cugraph_type_erased_device_array_view_t* cugraph_centrality_result_get_values( cugraph_centrality_result_t* result); /** + * @ingroup centrality * @brief Get the number of iterations executed from the algorithm metadata * * @param [in] result The result from a centrality algorithm @@ -65,6 +66,7 @@ cugraph_type_erased_device_array_view_t* cugraph_centrality_result_get_values( size_t cugraph_centrality_result_get_num_iterations(cugraph_centrality_result_t* result); /** + * @ingroup centrality * @brief Returns true if the centrality algorithm converged * * @param [in] result The result from a centrality algorithm @@ -73,6 +75,7 @@ size_t cugraph_centrality_result_get_num_iterations(cugraph_centrality_result_t* bool_t cugraph_centrality_result_converged(cugraph_centrality_result_t* result); /** + * @ingroup centrality * @brief Free centrality result * * @param [in] result The result from a centrality algorithm @@ -409,6 +412,7 @@ typedef struct { } cugraph_edge_centrality_result_t; /** + * @ingroup centrality * @brief Get the src vertex ids from an edge centrality result * * @param [in] result The result from an edge centrality algorithm @@ -418,6 +422,7 @@ cugraph_type_erased_device_array_view_t* cugraph_edge_centrality_result_get_src_ cugraph_edge_centrality_result_t* result); /** + * @ingroup centrality * @brief Get the dst vertex ids from an edge centrality result * * @param [in] result The result from an edge centrality algorithm @@ -427,6 +432,7 @@ cugraph_type_erased_device_array_view_t* cugraph_edge_centrality_result_get_dst_ cugraph_edge_centrality_result_t* result); /** + * @ingroup centrality * @brief Get the edge ids from an edge centrality result * * @param [in] result The result from an edge centrality algorithm @@ -436,6 +442,7 @@ cugraph_type_erased_device_array_view_t* cugraph_edge_centrality_result_get_edge cugraph_edge_centrality_result_t* result); /** + * @ingroup centrality * @brief Get the centrality values from an edge centrality algorithm result * * @param [in] result The result from an edge centrality algorithm @@ -445,6 +452,7 @@ cugraph_type_erased_device_array_view_t* cugraph_edge_centrality_result_get_valu cugraph_edge_centrality_result_t* result); /** + * @ingroup centrality * @brief Free centrality result * * @param [in] result The result from a centrality algorithm @@ -491,6 +499,7 @@ typedef struct { } cugraph_hits_result_t; /** + * @ingroup centrality * @brief Get the vertex ids from the hits result * * @param [in] result The result from hits @@ -500,6 +509,7 @@ cugraph_type_erased_device_array_view_t* cugraph_hits_result_get_vertices( cugraph_hits_result_t* result); /** + * @ingroup centrality * @brief Get the hubs values from the hits result * * @param [in] result The result from hits @@ -509,6 +519,7 @@ cugraph_type_erased_device_array_view_t* cugraph_hits_result_get_hubs( cugraph_hits_result_t* result); /** + * @ingroup centrality * @brief Get the authorities values from the hits result * * @param [in] result The result from hits @@ -518,6 +529,7 @@ cugraph_type_erased_device_array_view_t* cugraph_hits_result_get_authorities( cugraph_hits_result_t* result); /** + * @ingroup centrality * @brief Get the score differences between the last two iterations * * @param [in] result The result from hits @@ -526,6 +538,7 @@ cugraph_type_erased_device_array_view_t* cugraph_hits_result_get_authorities( double cugraph_hits_result_get_hub_score_differences(cugraph_hits_result_t* result); /** + * @ingroup centrality * @brief Get the actual number of iterations * * @param [in] result The result from hits @@ -534,6 +547,7 @@ double cugraph_hits_result_get_hub_score_differences(cugraph_hits_result_t* resu size_t cugraph_hits_result_get_number_of_iterations(cugraph_hits_result_t* result); /** + * @ingroup centrality * @brief Free hits result * * @param [in] result The result from hits @@ -585,7 +599,3 @@ cugraph_error_code_t cugraph_hits( #ifdef __cplusplus } #endif - -/** - * @} - */ diff --git a/cpp/include/cugraph_c/community_algorithms.h b/cpp/include/cugraph_c/community_algorithms.h index e938c77cccd..f14499df820 100644 --- a/cpp/include/cugraph_c/community_algorithms.h +++ b/cpp/include/cugraph_c/community_algorithms.h @@ -23,8 +23,6 @@ #include /** @defgroup community Community algorithms - * @ingroup c_api - * @{ */ #ifdef __cplusplus @@ -61,18 +59,21 @@ cugraph_error_code_t cugraph_triangle_count(const cugraph_resource_handle_t* han cugraph_error_t** error); /** + * @ingroup community * @brief Get triangle counting vertices */ cugraph_type_erased_device_array_view_t* cugraph_triangle_count_result_get_vertices( cugraph_triangle_count_result_t* result); /** + * @ingroup community * @brief Get triangle counting counts */ cugraph_type_erased_device_array_view_t* cugraph_triangle_count_result_get_counts( cugraph_triangle_count_result_t* result); /** + * @ingroup community * @brief Free a triangle count result * * @param [in] result The result from a sampling algorithm @@ -80,6 +81,7 @@ cugraph_type_erased_device_array_view_t* cugraph_triangle_count_result_get_count void cugraph_triangle_count_result_free(cugraph_triangle_count_result_t* result); /** + * @ingroup community * @brief Opaque hierarchical clustering output */ typedef struct { @@ -148,24 +150,28 @@ cugraph_error_code_t cugraph_leiden(const cugraph_resource_handle_t* handle, cugraph_error_t** error); /** + * @ingroup community * @brief Get hierarchical clustering vertices */ cugraph_type_erased_device_array_view_t* cugraph_hierarchical_clustering_result_get_vertices( cugraph_hierarchical_clustering_result_t* result); /** + * @ingroup community * @brief Get hierarchical clustering clusters */ cugraph_type_erased_device_array_view_t* cugraph_hierarchical_clustering_result_get_clusters( cugraph_hierarchical_clustering_result_t* result); /** + * @ingroup community * @brief Get modularity */ double cugraph_hierarchical_clustering_result_get_modularity( cugraph_hierarchical_clustering_result_t* result); /** + * @ingroup community * @brief Free a hierarchical clustering result * * @param [in] result The result from a sampling algorithm @@ -382,18 +388,21 @@ cugraph_error_code_t cugraph_analyze_clustering_ratio_cut( cugraph_error_t** error); /** + * @ingroup community * @brief Get clustering vertices */ cugraph_type_erased_device_array_view_t* cugraph_clustering_result_get_vertices( cugraph_clustering_result_t* result); /** + * @ingroup community * @brief Get clustering clusters */ cugraph_type_erased_device_array_view_t* cugraph_clustering_result_get_clusters( cugraph_clustering_result_t* result); /** + * @ingroup community * @brief Free a clustering result * * @param [in] result The result from a sampling algorithm @@ -403,7 +412,3 @@ void cugraph_clustering_result_free(cugraph_clustering_result_t* result); #ifdef __cplusplus } #endif - -/** - * @} - */ diff --git a/cpp/include/cugraph_c/core_algorithms.h b/cpp/include/cugraph_c/core_algorithms.h index c0e348c3cf4..6db3269f61e 100644 --- a/cpp/include/cugraph_c/core_algorithms.h +++ b/cpp/include/cugraph_c/core_algorithms.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022, NVIDIA CORPORATION. + * Copyright (c) 2022-2023, NVIDIA CORPORATION. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,6 +21,9 @@ #include #include +/** @defgroup core Core algorithms + */ + #ifdef __cplusplus extern "C" { #endif @@ -40,6 +43,7 @@ typedef struct { } cugraph_k_core_result_t; /** + * @ingroup core * @brief Create a core_number result (in case it was previously extracted) * * @param [in] handle Handle for accessing resources @@ -58,6 +62,7 @@ cugraph_error_code_t cugraph_core_result_create( cugraph_error_t** error); /** + * @ingroup core * @brief Get the vertex ids from the core result * * @param [in] result The result from core number @@ -67,6 +72,7 @@ cugraph_type_erased_device_array_view_t* cugraph_core_result_get_vertices( cugraph_core_result_t* result); /** + * @ingroup core * @brief Get the core numbers from the core result * * @param [in] result The result from core number @@ -76,6 +82,7 @@ cugraph_type_erased_device_array_view_t* cugraph_core_result_get_core_numbers( cugraph_core_result_t* result); /** + * @ingroup core * @brief Free core result * * @param [in] result The result from core number @@ -83,6 +90,7 @@ cugraph_type_erased_device_array_view_t* cugraph_core_result_get_core_numbers( void cugraph_core_result_free(cugraph_core_result_t* result); /** + * @ingroup core * @brief Get the src vertex ids from the k-core result * * @param [in] result The result from k-core @@ -92,6 +100,7 @@ cugraph_type_erased_device_array_view_t* cugraph_k_core_result_get_src_vertices( cugraph_k_core_result_t* result); /** + * @ingroup core * @brief Get the dst vertex ids from the k-core result * * @param [in] result The result from k-core @@ -101,6 +110,7 @@ cugraph_type_erased_device_array_view_t* cugraph_k_core_result_get_dst_vertices( cugraph_k_core_result_t* result); /** + * @ingroup core * @brief Get the weights from the k-core result * * Returns NULL if the graph is unweighted @@ -112,6 +122,7 @@ cugraph_type_erased_device_array_view_t* cugraph_k_core_result_get_weights( cugraph_k_core_result_t* result); /** + * @ingroup core * @brief Free k-core result * * @param [in] result The result from k-core @@ -119,6 +130,7 @@ cugraph_type_erased_device_array_view_t* cugraph_k_core_result_get_weights( void cugraph_k_core_result_free(cugraph_k_core_result_t* result); /** + * @ingroup core * @brief Enumeration for computing core number */ typedef enum { diff --git a/cpp/include/cugraph_c/labeling_algorithms.h b/cpp/include/cugraph_c/labeling_algorithms.h index f3e634dafe6..53dcc0d9419 100644 --- a/cpp/include/cugraph_c/labeling_algorithms.h +++ b/cpp/include/cugraph_c/labeling_algorithms.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022, NVIDIA CORPORATION. + * Copyright (c) 2022-2023, NVIDIA CORPORATION. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,8 +25,6 @@ extern "C" { #endif /** @defgroup labeling Labeling algorithms - * @ingroup c_api - * @{ */ /** @@ -37,6 +35,7 @@ typedef struct { } cugraph_labeling_result_t; /** + * @ingroup labeling * @brief Get the vertex ids from the labeling result * * @param [in] result The result from a labeling algorithm @@ -46,6 +45,7 @@ cugraph_type_erased_device_array_view_t* cugraph_labeling_result_get_vertices( cugraph_labeling_result_t* result); /** + * @ingroup labeling * @brief Get the label values from the labeling result * * @param [in] result The result from a labeling algorithm @@ -55,6 +55,7 @@ cugraph_type_erased_device_array_view_t* cugraph_labeling_result_get_labels( cugraph_labeling_result_t* result); /** + * @ingroup labeling * @brief Free labeling result * * @param [in] result The result from a labeling algorithm @@ -104,7 +105,3 @@ cugraph_error_code_t cugraph_strongly_connected_components(const cugraph_resourc #ifdef __cplusplus } #endif - -/** - * @} - */ diff --git a/cpp/include/cugraph_c/sampling_algorithms.h b/cpp/include/cugraph_c/sampling_algorithms.h index 37124d100dd..d594132aa71 100644 --- a/cpp/include/cugraph_c/sampling_algorithms.h +++ b/cpp/include/cugraph_c/sampling_algorithms.h @@ -21,9 +21,7 @@ #include #include -/** @defgroup sampling Sampling algorithms - * @ingroup c_api - * @{ +/** @defgroup samplingC Sampling algorithms */ #ifdef __cplusplus @@ -135,6 +133,7 @@ cugraph_error_code_t cugraph_node2vec(const cugraph_resource_handle_t* handle, cugraph_error_t** error); /** + * @ingroup samplingC * @brief Get the max path length from random walk result * * @param [in] result The result from random walks @@ -146,6 +145,7 @@ size_t cugraph_random_walk_result_get_max_path_length(cugraph_random_walk_result // difference at the moment is that RW results contain weights // and extract_paths results don't. But that's probably wrong. /** + * @ingroup samplingC * @brief Get the matrix (row major order) of vertices in the paths * * @param [in] result The result from a random walk algorithm @@ -155,6 +155,7 @@ cugraph_type_erased_device_array_view_t* cugraph_random_walk_result_get_paths( cugraph_random_walk_result_t* result); /** + * @ingroup samplingC * @brief Get the matrix (row major order) of edge weights in the paths * * @param [in] result The result from a random walk algorithm @@ -164,6 +165,7 @@ cugraph_type_erased_device_array_view_t* cugraph_random_walk_result_get_weights( cugraph_random_walk_result_t* result); /** + * @ingroup samplingC * @brief If the random walk result is compressed, get the path sizes * @deprecated This call will no longer be relevant once the new node2vec are called * @@ -174,6 +176,7 @@ cugraph_type_erased_device_array_view_t* cugraph_random_walk_result_get_path_siz cugraph_random_walk_result_t* result); /** + * @ingroup samplingC * @brief Free random walks result * * @param [in] result The result from random walks @@ -195,6 +198,7 @@ typedef struct { } cugraph_sampling_options_t; /** + * @ingroup samplingC * @brief Enumeration for prior sources behavior */ typedef enum cugraph_prior_sources_behavior_t { @@ -206,6 +210,7 @@ typedef enum cugraph_prior_sources_behavior_t { } cugraph_prior_sources_behavior_t; /** + * @ingroup samplingC * @brief Create sampling options object * * All sampling options set to FALSE @@ -218,6 +223,7 @@ cugraph_error_code_t cugraph_sampling_options_create(cugraph_sampling_options_t* cugraph_error_t** error); /** + * @ingroup samplingC * @brief Set flag to renumber results * * @param options - opaque pointer to the sampling options @@ -226,6 +232,7 @@ cugraph_error_code_t cugraph_sampling_options_create(cugraph_sampling_options_t* void cugraph_sampling_set_renumber_results(cugraph_sampling_options_t* options, bool_t value); /** + * @ingroup samplingC * @brief Set flag to sample with_replacement * * @param options - opaque pointer to the sampling options @@ -234,6 +241,7 @@ void cugraph_sampling_set_renumber_results(cugraph_sampling_options_t* options, void cugraph_sampling_set_with_replacement(cugraph_sampling_options_t* options, bool_t value); /** + * @ingroup samplingC * @brief Set flag to sample return_hops * * @param options - opaque pointer to the sampling options @@ -242,6 +250,7 @@ void cugraph_sampling_set_with_replacement(cugraph_sampling_options_t* options, void cugraph_sampling_set_return_hops(cugraph_sampling_options_t* options, bool_t value); /** + * @ingroup samplingC * @brief Set prior sources behavior * * @param options - opaque pointer to the sampling options @@ -251,6 +260,7 @@ void cugraph_sampling_set_prior_sources_behavior(cugraph_sampling_options_t* opt cugraph_prior_sources_behavior_t value); /** + * @ingroup sampling * @brief Set flag to sample dedupe_sources prior to sampling * * @param options - opaque pointer to the sampling options @@ -259,6 +269,7 @@ void cugraph_sampling_set_prior_sources_behavior(cugraph_sampling_options_t* opt void cugraph_sampling_set_dedupe_sources(cugraph_sampling_options_t* options, bool_t value); /** + * @ingroup samplingC * @brief Free sampling options object * * @param [in] options Opaque pointer to sampling object @@ -374,6 +385,7 @@ cugraph_error_code_t cugraph_uniform_neighbor_sample( cugraph_error_t** error); /** + * @ingroup samplingC * @brief Get the source vertices from the sampling algorithm result * * @param [in] result The result from a sampling algorithm @@ -383,6 +395,7 @@ cugraph_type_erased_device_array_view_t* cugraph_sample_result_get_sources( const cugraph_sample_result_t* result); /** + * @ingroup samplingC * @brief Get the destination vertices from the sampling algorithm result * * @param [in] result The result from a sampling algorithm @@ -392,6 +405,7 @@ cugraph_type_erased_device_array_view_t* cugraph_sample_result_get_destinations( const cugraph_sample_result_t* result); /** + * @ingroup samplingC * @brief Get the start labels from the sampling algorithm result * * @param [in] result The result from a sampling algorithm @@ -401,6 +415,7 @@ cugraph_type_erased_device_array_view_t* cugraph_sample_result_get_start_labels( const cugraph_sample_result_t* result); /** + * @ingroup samplingC * @brief Get the edge_id from the sampling algorithm result * * @param [in] result The result from a sampling algorithm @@ -410,6 +425,7 @@ cugraph_type_erased_device_array_view_t* cugraph_sample_result_get_edge_id( const cugraph_sample_result_t* result); /** + * @ingroup samplingC * @brief Get the edge_type from the sampling algorithm result * * @param [in] result The result from a sampling algorithm @@ -419,6 +435,7 @@ cugraph_type_erased_device_array_view_t* cugraph_sample_result_get_edge_type( const cugraph_sample_result_t* result); /** + * @ingroup samplingC * @brief Get the edge_weight from the sampling algorithm result * * @param [in] result The result from a sampling algorithm @@ -428,6 +445,7 @@ cugraph_type_erased_device_array_view_t* cugraph_sample_result_get_edge_weight( const cugraph_sample_result_t* result); /** + * @ingroup samplingC * @brief Get the hop from the sampling algorithm result * * @param [in] result The result from a sampling algorithm @@ -437,6 +455,7 @@ cugraph_type_erased_device_array_view_t* cugraph_sample_result_get_hop( const cugraph_sample_result_t* result); /** + * @ingroup samplingC * @brief Get the index from the sampling algorithm result * * @param [in] result The result from a sampling algorithm @@ -446,6 +465,7 @@ cugraph_type_erased_device_array_view_t* cugraph_sample_result_get_index( const cugraph_sample_result_t* result); /** + * @ingroup samplingC * @brief Get the result offsets from the sampling algorithm result * * @param [in] result The result from a sampling algorithm @@ -455,6 +475,7 @@ cugraph_type_erased_device_array_view_t* cugraph_sample_result_get_offsets( const cugraph_sample_result_t* result); /** + * @ingroup samplingC * @brief Get the renumber map * * @param [in] result The result from a sampling algorithm @@ -464,6 +485,7 @@ cugraph_type_erased_device_array_view_t* cugraph_sample_result_get_renumber_map( const cugraph_sample_result_t* result); /** + * @ingroup samplingC * @brief Get the renumber map offsets * * @param [in] result The result from a sampling algorithm @@ -473,6 +495,7 @@ cugraph_type_erased_device_array_view_t* cugraph_sample_result_get_renumber_map_ const cugraph_sample_result_t* result); /** + * @ingroup samplingC * @brief Free a sampling result * * @param [in] result The result from a sampling algorithm @@ -480,6 +503,7 @@ cugraph_type_erased_device_array_view_t* cugraph_sample_result_get_renumber_map_ void cugraph_sample_result_free(cugraph_sample_result_t* result); /** + * @ingroup samplingC * @brief Create a sampling result (testing API) * * @param [in] handle Handle for accessing resources @@ -510,6 +534,7 @@ cugraph_error_code_t cugraph_test_sample_result_create( cugraph_error_t** error); /** + * @ingroup samplingC * @brief Create a sampling result (testing API) * * @param [in] handle Handle for accessing resources @@ -540,6 +565,7 @@ cugraph_error_code_t cugraph_test_uniform_neighborhood_sample_result_create( cugraph_error_t** error); /** + * @ingroup samplingC * @brief Select random vertices from the graph * * @param [in] handle Handle for accessing resources @@ -562,7 +588,3 @@ cugraph_error_code_t cugraph_select_random_vertices(const cugraph_resource_handl #ifdef __cplusplus } #endif - -/** - * @} - */ diff --git a/cpp/include/cugraph_c/similarity_algorithms.h b/cpp/include/cugraph_c/similarity_algorithms.h index 1417d8ac566..b8f61b46545 100644 --- a/cpp/include/cugraph_c/similarity_algorithms.h +++ b/cpp/include/cugraph_c/similarity_algorithms.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022, NVIDIA CORPORATION. + * Copyright (c) 2022-2023, NVIDIA CORPORATION. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,6 +22,9 @@ #include #include +/** @defgroup similarity Similarity algorithms + */ + #ifdef __cplusplus extern "C" { #endif @@ -34,6 +37,7 @@ typedef struct { } cugraph_similarity_result_t; /** + * @ingroup similarity * @brief Get the similarity coefficient array * * @param [in] result The result from a similarity algorithm @@ -43,6 +47,7 @@ cugraph_type_erased_device_array_view_t* cugraph_similarity_result_get_similarit cugraph_similarity_result_t* result); /** + * @ingroup similarity * @brief Free similarity result * * @param [in] result The result from a similarity algorithm diff --git a/cpp/include/cugraph_c/traversal_algorithms.h b/cpp/include/cugraph_c/traversal_algorithms.h index 8959366ac17..0c48dcc2437 100644 --- a/cpp/include/cugraph_c/traversal_algorithms.h +++ b/cpp/include/cugraph_c/traversal_algorithms.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021-2022, NVIDIA CORPORATION. + * Copyright (c) 2021-2023, NVIDIA CORPORATION. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,8 +21,6 @@ #include /** @defgroup traversal Traversal Algorithms - * @ingroup c_api - * @{ */ #ifdef __cplusplus @@ -40,6 +38,7 @@ typedef struct { } cugraph_paths_result_t; /** + * @ingroup traversal * @brief Get the vertex ids from the paths result * * @param [in] result The result from bfs or sssp @@ -49,6 +48,7 @@ cugraph_type_erased_device_array_view_t* cugraph_paths_result_get_vertices( cugraph_paths_result_t* result); /** + * @ingroup traversal * @brief Get the distances from the paths result * * @param [in] result The result from bfs or sssp @@ -58,6 +58,7 @@ cugraph_type_erased_device_array_view_t* cugraph_paths_result_get_distances( cugraph_paths_result_t* result); /** + * @ingroup traversal * @brief Get the predecessors from the paths result * * @param [in] result The result from bfs or sssp @@ -69,6 +70,7 @@ cugraph_type_erased_device_array_view_t* cugraph_paths_result_get_predecessors( cugraph_paths_result_t* result); /** + * @ingroup traversal * @brief Free paths result * * @param [in] result The result from bfs or sssp @@ -188,6 +190,7 @@ cugraph_error_code_t cugraph_extract_paths( size_t cugraph_extract_paths_result_get_max_path_length(cugraph_extract_paths_result_t* result); /** + * @ingroup traversal * @brief Get the matrix (row major order) of paths * * @param [in] result The result from extract_paths @@ -197,6 +200,7 @@ cugraph_type_erased_device_array_view_t* cugraph_extract_paths_result_get_paths( cugraph_extract_paths_result_t* result); /** + * @ingroup traversal * @brief Free extract_paths result * * @param [in] result The result from extract_paths @@ -206,7 +210,3 @@ void cugraph_extract_paths_result_free(cugraph_extract_paths_result_t* result); #ifdef __cplusplus } #endif - -/** - * @} - */ diff --git a/dependencies.yaml b/dependencies.yaml index 04ec1b6e957..c3ae495b2c6 100644 --- a/dependencies.yaml +++ b/dependencies.yaml @@ -305,6 +305,7 @@ dependencies: common: - output_types: [conda] packages: + - breathe - doxygen - graphviz - ipython @@ -317,6 +318,7 @@ dependencies: - sphinx<6 - sphinxcontrib-websupport - pylibcugraphops==23.10.* + - &thrift thriftpy2>=0.4.15 py_version: specific: - output_types: [conda] @@ -421,7 +423,7 @@ dependencies: common: - output_types: [conda, pyproject] packages: - - &thrift thriftpy2 + - *thrift python_run_cugraph_service_server: common: - output_types: [conda, pyproject] diff --git a/docs/cugraph/source/api_docs/cugraph-pyg/cugraph_pyg.rst b/docs/cugraph/source/api_docs/cugraph-pyg/cugraph_pyg.rst index 2cd8969aa66..047b39096d3 100644 --- a/docs/cugraph/source/api_docs/cugraph-pyg/cugraph_pyg.rst +++ b/docs/cugraph/source/api_docs/cugraph-pyg/cugraph_pyg.rst @@ -10,5 +10,5 @@ cugraph-pyg :toctree: ../api/cugraph-pyg/ cugraph_pyg.data.cugraph_store.EXPERIMENTAL__CuGraphStore - cugraph_pyg.sampler.cugraph_sampler.EXPERIMENTAL__CuGraphSampler +.. cugraph_pyg.sampler.cugraph_sampler.EXPERIMENTAL__CuGraphSampler diff --git a/docs/cugraph/source/api_docs/cugraph/index.rst b/docs/cugraph/source/api_docs/cugraph/index.rst index 20b63d50ae6..3427a28f4a3 100644 --- a/docs/cugraph/source/api_docs/cugraph/index.rst +++ b/docs/cugraph/source/api_docs/cugraph/index.rst @@ -1,6 +1,6 @@ -~~~~~~~~~~~~~~~~~~~~~ -cugraph API Reference -~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +cugraph Python API Reference +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. toctree:: :maxdepth: 2 diff --git a/docs/cugraph/source/api_docs/cugraph_c/c_and_cpp.rst b/docs/cugraph/source/api_docs/cugraph_c/c_and_cpp.rst deleted file mode 100644 index 34b812785d3..00000000000 --- a/docs/cugraph/source/api_docs/cugraph_c/c_and_cpp.rst +++ /dev/null @@ -1,4 +0,0 @@ -CuGraph C and C++ API Links -=========================== - -coming soon - see https://docs.rapids.ai/api/libcugraph/nightly/ \ No newline at end of file diff --git a/docs/cugraph/source/api_docs/cugraph_c/centrality.rst b/docs/cugraph/source/api_docs/cugraph_c/centrality.rst new file mode 100644 index 00000000000..f34e26ad76e --- /dev/null +++ b/docs/cugraph/source/api_docs/cugraph_c/centrality.rst @@ -0,0 +1,51 @@ +Centrality +========== + +PageRank +-------- +.. doxygenfunction:: cugraph_pagerank + :project: libcugraph + +.. doxygenfunction:: cugraph_pagerank_allow_nonconvergence + :project: libcugraph + +Personalized PageRank +--------------------- +.. doxygenfunction:: cugraph_personalized_pagerank + :project: libcugraph + +.. doxygenfunction:: cugraph_personalized_pagerank_allow_nonconvergence + :project: libcugraph + +Eigenvector Centrality +---------------------- +.. doxygenfunction:: cugraph_eigenvector_centrality + :project: libcugraph + +Katz Centrality +--------------- +.. doxygenfunction:: cugraph_katz_centrality + :project: libcugraph + +Betweenness Centrality +---------------------- +.. doxygenfunction:: cugraph_betweenness_centrality + :project: libcugraph + +Edge Betweenness Centrality +--------------------------- +.. doxygenfunction:: cugraph_edge_betweenness_centrality + :project: libcugraph + +HITS Centrality +--------------- +.. doxygenfunction:: cugraph_hits + :project: libcugraph + +Centrality Support Functions +---------------------------- + .. doxygengroup:: centrality + :project: libcugraph + :members: + :content-only: + diff --git a/docs/cugraph/source/api_docs/cugraph_c/community.rst b/docs/cugraph/source/api_docs/cugraph_c/community.rst new file mode 100644 index 00000000000..0bbfe365c4d --- /dev/null +++ b/docs/cugraph/source/api_docs/cugraph_c/community.rst @@ -0,0 +1,63 @@ +Community +========= + +.. role:: py(code) + :language: c + :class: highlight + +``#include `` + +Triangle Counting +----------------- +.. doxygenfunction:: cugraph_triangle_count + :project: libcugraph + +Louvain +------- +.. doxygenfunction:: cugraph_louvain + :project: libcugraph + +Leiden +------ +.. doxygenfunction:: cugraph_leiden + :project: libcugraph + +ECG +--- +.. doxygenfunction:: cugraph_ecg + :project: libcugraph + +Extract Egonet +-------------- +.. doxygenfunction:: cugraph_extract_ego + :project: libcugraph + +Balanced Cut +------------ +.. doxygenfunction:: cugraph_balanced_cut_clustering + :project: libcugraph + +Spectral Clustering - Modularity Maximization +--------------------------------------------- +.. doxygenfunction:: cugraph_spectral_modularity_maximization + :project: libcugraph + +.. doxygenfunction:: cugraph_analyze_clustering_modularity + :project: libcugraph + +Spectral Clusteriong - Edge Cut +------------------------------- +.. doxygenfunction:: cugraph_analyze_clustering_edge_cut + :project: libcugraph + +.. doxygenfunction:: cugraph_analyze_clustering_ratio_cut + :project: libcugraph + + +Community Support Functions +--------------------------- + .. doxygengroup:: community + :project: libcugraph + :members: + :content-only: + diff --git a/docs/cugraph/source/api_docs/cugraph_c/core.rst b/docs/cugraph/source/api_docs/cugraph_c/core.rst new file mode 100644 index 00000000000..34456c65e43 --- /dev/null +++ b/docs/cugraph/source/api_docs/cugraph_c/core.rst @@ -0,0 +1,21 @@ +Core +==== + + +Core Number +----------- +.. doxygenfunction:: cugraph_core_number + :project: libcugraph + +K-Core +------ +.. doxygenfunction:: cugraph_k_core + :project: libcugraph + + +Core Support Functions +---------------------- + .. doxygengroup:: core + :project: libcugraph + :members: + :content-only: diff --git a/docs/cugraph/source/api_docs/cugraph_c/index.rst b/docs/cugraph/source/api_docs/cugraph_c/index.rst new file mode 100644 index 00000000000..3dd37dbc374 --- /dev/null +++ b/docs/cugraph/source/api_docs/cugraph_c/index.rst @@ -0,0 +1,16 @@ +=========================== +cuGraph C API documentation +=========================== + + +.. toctree:: + :maxdepth: 3 + :caption: API Documentation + + centrality.rst + community.rst + core.rst + labeling.rst + sampling.rst + similarity.rst + traversal.rst diff --git a/docs/cugraph/source/api_docs/cugraph_c/labeling.rst b/docs/cugraph/source/api_docs/cugraph_c/labeling.rst new file mode 100644 index 00000000000..af105ee8fc9 --- /dev/null +++ b/docs/cugraph/source/api_docs/cugraph_c/labeling.rst @@ -0,0 +1,20 @@ +Components +========== + + +Weakly Connected Components +--------------------------- +.. doxygenfunction:: cugraph_weakly_connected_components + :project: libcugraph + +Strongly Connected Components +----------------------------- +.. doxygenfunction:: cugraph_strongly_connected_components + :project: libcugraph + +Support +------- + .. doxygengroup:: labeling + :project: libcugraph + :members: + :content-only: \ No newline at end of file diff --git a/docs/cugraph/source/api_docs/cugraph_c/sampling.rst b/docs/cugraph/source/api_docs/cugraph_c/sampling.rst new file mode 100644 index 00000000000..21b837daf93 --- /dev/null +++ b/docs/cugraph/source/api_docs/cugraph_c/sampling.rst @@ -0,0 +1,37 @@ +Sampling +======== + +Uniform Random Walks +-------------------- +.. doxygenfunction:: cugraph_uniform_random_walks + :project: libcugraph + +Biased Random Walks +-------------------- +.. doxygenfunction:: cugraph_biased_random_walks + :project: libcugraph + +Random Walks via Node2Vec +------------------------- +.. doxygenfunction:: cugraph_node2vec_random_walks + :project: libcugraph + +Node2Vec +-------- +.. doxygenfunction:: cugraph_node2vec + :project: libcugraph + +Uniform Neighborhood Sampling +----------------------------- +.. doxygenfunction:: cugraph_uniform_neighbor_sample_with_edge_properties + :project: libcugraph + +.. doxygenfunction:: cugraph_uniform_neighbor_sample + :project: libcugraph + +Support +------- +.. doxygengroup:: samplingC + :project: libcugraph + :members: + :content-only: diff --git a/docs/cugraph/source/api_docs/cugraph_c/similarity.rst b/docs/cugraph/source/api_docs/cugraph_c/similarity.rst new file mode 100644 index 00000000000..fba07ad206c --- /dev/null +++ b/docs/cugraph/source/api_docs/cugraph_c/similarity.rst @@ -0,0 +1,25 @@ +Similarity +========== + + +Jaccard +------- +.. doxygenfunction:: cugraph_jaccard_coefficients + :project: libcugraph + +Sorensen +-------- +.. doxygenfunction:: cugraph_sorensen_coefficients + :project: libcugraph + +Overlap +------- +.. doxygenfunction:: cugraph_overlap_coefficients + :project: libcugraph + +Support +------- +.. doxygengroup:: similarity + :project: libcugraph + :members: + :content-only: \ No newline at end of file diff --git a/docs/cugraph/source/api_docs/cugraph_c/traversal.rst b/docs/cugraph/source/api_docs/cugraph_c/traversal.rst new file mode 100644 index 00000000000..c90760e9e79 --- /dev/null +++ b/docs/cugraph/source/api_docs/cugraph_c/traversal.rst @@ -0,0 +1,30 @@ +Traversal +========== + + +Breadth First Search (BFS) +-------------------------- +.. doxygenfunction:: cugraph_bfs + :project: libcugraph + +Single-Source Shortest-Path (SSSP) +---------------------------------- +.. doxygenfunction:: cugraph_sssp + :project: libcugraph + +Path Extraction +--------------- +.. doxygenfunction:: cugraph_extract_paths + :project: libcugraph + +Extract Max Path Length +----------------------- +.. doxygenfunction:: cugraph_extract_paths_result_get_max_path_length + :project: libcugraph + +Support +------- +.. doxygengroup:: traversal + :project: libcugraph + :members: + :content-only: \ No newline at end of file diff --git a/docs/cugraph/source/api_docs/cugraph_cpp/centrality.rst b/docs/cugraph/source/api_docs/cugraph_cpp/centrality.rst new file mode 100644 index 00000000000..a23b7e22d43 --- /dev/null +++ b/docs/cugraph/source/api_docs/cugraph_cpp/centrality.rst @@ -0,0 +1,12 @@ +Centrality +========== + +Centrality Functions +-------------------- + .. doxygengroup:: centralityCPP + :project: libcugraph + :members: + :content-only: + + + diff --git a/docs/cugraph/source/api_docs/cugraph_cpp/community.rst b/docs/cugraph/source/api_docs/cugraph_cpp/community.rst new file mode 100644 index 00000000000..461ed9f94c1 --- /dev/null +++ b/docs/cugraph/source/api_docs/cugraph_cpp/community.rst @@ -0,0 +1,11 @@ +Community +========= + +``#include `` + +Community Functions +------------------- + .. doxygengroup:: communityCPP + :project: libcugraph + :members: + :content-only: diff --git a/docs/cugraph/source/api_docs/cugraph_cpp/components.rst b/docs/cugraph/source/api_docs/cugraph_cpp/components.rst new file mode 100644 index 00000000000..3baa7cfe44a --- /dev/null +++ b/docs/cugraph/source/api_docs/cugraph_cpp/components.rst @@ -0,0 +1,10 @@ +Components +========== + + +Components Functions +-------------------- + .. doxygengroup:: labelingCPP + :project: libcugraph + :members: + :content-only: \ No newline at end of file diff --git a/docs/cugraph/source/api_docs/cugraph_cpp/core.rst b/docs/cugraph/source/api_docs/cugraph_cpp/core.rst new file mode 100644 index 00000000000..f265f6e4283 --- /dev/null +++ b/docs/cugraph/source/api_docs/cugraph_cpp/core.rst @@ -0,0 +1,12 @@ +Core +==== + +``#include `` + +Core Functions +-------------- + .. doxygengroup:: coreCPP + :project: libcugraph + :members: + :content-only: + diff --git a/docs/cugraph/source/api_docs/cugraph_cpp/index.rst b/docs/cugraph/source/api_docs/cugraph_cpp/index.rst new file mode 100644 index 00000000000..322e0da0ae9 --- /dev/null +++ b/docs/cugraph/source/api_docs/cugraph_cpp/index.rst @@ -0,0 +1,19 @@ +============================= +cuGraph C++ API documentation +============================= + + +.. toctree:: + :maxdepth: 3 + :caption: API Documentation + + centrality.rst + community.rst + components.rst + core.rst + layout.rst + linear_assignment.rst + sampling.rst + similarity.rst + traversal.rst + tree.rst diff --git a/docs/cugraph/source/api_docs/cugraph_cpp/layoyt.rst b/docs/cugraph/source/api_docs/cugraph_cpp/layoyt.rst new file mode 100644 index 00000000000..1df0a2b12bc --- /dev/null +++ b/docs/cugraph/source/api_docs/cugraph_cpp/layoyt.rst @@ -0,0 +1,12 @@ +Core +==== + +``#include `` + +Core Functions +-------------- + .. doxygengroup:: placementCPP + :project: libcugraph + :members: + :content-only: + diff --git a/docs/cugraph/source/api_docs/cugraph_cpp/linear_assignment.rst b/docs/cugraph/source/api_docs/cugraph_cpp/linear_assignment.rst new file mode 100644 index 00000000000..ca923135da3 --- /dev/null +++ b/docs/cugraph/source/api_docs/cugraph_cpp/linear_assignment.rst @@ -0,0 +1,12 @@ +Linear Assignment +================= + +Linear Assignment Functions +--------------------------- + .. doxygengroup:: assignmentCPP + :project: libcugraph + :members: + :content-only: + + + diff --git a/docs/cugraph/source/api_docs/cugraph_cpp/sampling.rst b/docs/cugraph/source/api_docs/cugraph_cpp/sampling.rst new file mode 100644 index 00000000000..b2be3d495c7 --- /dev/null +++ b/docs/cugraph/source/api_docs/cugraph_cpp/sampling.rst @@ -0,0 +1,9 @@ +Sampling +======== + +Sampling Functions +------------------ + .. doxygengroup:: samplingCPP + :project: libcugraph + :members: + :content-only: diff --git a/docs/cugraph/source/api_docs/cugraph_cpp/similarity.rst b/docs/cugraph/source/api_docs/cugraph_cpp/similarity.rst new file mode 100644 index 00000000000..83a9d694e5e --- /dev/null +++ b/docs/cugraph/source/api_docs/cugraph_cpp/similarity.rst @@ -0,0 +1,9 @@ +Similarity +========== + +Similarity Functions +-------------------- + .. doxygengroup:: similarityCPP + :project: libcugraph + :members: + :content-only: diff --git a/docs/cugraph/source/api_docs/cugraph_cpp/traversal.rst b/docs/cugraph/source/api_docs/cugraph_cpp/traversal.rst new file mode 100644 index 00000000000..8bc3e63f26e --- /dev/null +++ b/docs/cugraph/source/api_docs/cugraph_cpp/traversal.rst @@ -0,0 +1,10 @@ +Traversal +========== + + +Traversal Functions +------------------- + .. doxygengroup:: traversalCPP + :project: libcugraph + :members: + :content-only: diff --git a/docs/cugraph/source/api_docs/cugraph_cpp/tree.rst b/docs/cugraph/source/api_docs/cugraph_cpp/tree.rst new file mode 100644 index 00000000000..731bd085065 --- /dev/null +++ b/docs/cugraph/source/api_docs/cugraph_cpp/tree.rst @@ -0,0 +1,10 @@ +Tree +==== + + +Tree Functions +-------------- + .. doxygengroup:: treeCPP + :project: libcugraph + :members: + :content-only: diff --git a/docs/cugraph/source/api_docs/index.rst b/docs/cugraph/source/api_docs/index.rst index 45f7210f5a2..3381dc48ee5 100644 --- a/docs/cugraph/source/api_docs/index.rst +++ b/docs/cugraph/source/api_docs/index.rst @@ -1,16 +1,39 @@ -Python API reference -==================== +API reference +============= This page provides a list of all publicly accessible Python modules with in the Graph collection +Core Graph API Documentation +---------------------------- + .. toctree:: - :maxdepth: 2 - :caption: Python API Documentation + :maxdepth: 3 + :caption: Core Graph API Documentation cugraph/index.rst plc/pylibcugraph.rst + cugraph_c/index.rst + cugraph_cpp/index.rst + +Graph Nerual Networks API Documentation +--------------------------------------- + +.. toctree:: + :maxdepth: 3 + :caption: Graph Nerual Networks API Documentation + cugraph-dgl/cugraph_dgl.rst cugraph-pyg/cugraph_pyg.rst - service/index.rst cugraph-ops/index.rst + wholegraph/index.rst + +Graph Extensions API Documentation +---------------------------------- + +.. toctree:: + :maxdepth: 3 + :caption: Graph Extensions API Documentation + + service/index.rst + diff --git a/docs/cugraph/source/api_docs/plc/pylibcugraph.rst b/docs/cugraph/source/api_docs/plc/pylibcugraph.rst index 7ebdd67e923..71b6808a3d4 100644 --- a/docs/cugraph/source/api_docs/plc/pylibcugraph.rst +++ b/docs/cugraph/source/api_docs/plc/pylibcugraph.rst @@ -1,5 +1,5 @@ ~~~~~~~~~~~~~~~~~~~~~~~~~~ -pylibcugraph API reference +pylibcugraph Python API reference ~~~~~~~~~~~~~~~~~~~~~~~~~~ pylibcugraph diff --git a/docs/cugraph/source/conf.py b/docs/cugraph/source/conf.py index a96f0fc1e82..c9711bd7b88 100644 --- a/docs/cugraph/source/conf.py +++ b/docs/cugraph/source/conf.py @@ -37,10 +37,11 @@ # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ + "breathe", + "numpydoc", "sphinx.ext.intersphinx", "sphinx.ext.autodoc", "sphinx.ext.autosummary", - "numpydoc", "sphinx_markdown_tables", 'sphinx.ext.doctest', 'sphinx.ext.linkcode', @@ -184,6 +185,14 @@ 'Miscellaneous'), ] +autodoc_mock_imports = [ + "numpy", + "torch", + "torch.distributed", + "torch.utils.dlpack", + "torch.utils.data.Dataset", + "pylibcugraph.binding.cugraph_binding" +] # Example configuration for intersphinx: refer to the Python standard library. intersphinx_mapping = {'https://docs.python.org/': None} @@ -193,6 +202,10 @@ numpydoc_show_inherited_class_members = False numpydoc_class_members_toctree = False +breathe_projects = { + 'libcugraph': '../libcugraph/_xml', +} +breathe_default_project = "libcugraph" def setup(app): app.add_css_file("https://docs.rapids.ai/assets/css/custom.css") diff --git a/docs/cugraph/source/installation/source_build.md b/docs/cugraph/source/installation/source_build.md index 7782591f1ce..222662a6452 100644 --- a/docs/cugraph/source/installation/source_build.md +++ b/docs/cugraph/source/installation/source_build.md @@ -57,7 +57,7 @@ conda deactivate ```bash # Where XXX is the CUDA 11 version -conda env update --name cugraph_dev --file conda/environments/cugraph_dev_cuda11.XXX.yml +conda env update --name cugraph_dev --file conda/environments/all_cuda-1[XXX]_arch-x86_64.yml conda activate cugraph_dev ``` diff --git a/python/cugraph-service/client/pyproject.toml b/python/cugraph-service/client/pyproject.toml index 3b31a5f2e0a..ddd5e225a73 100644 --- a/python/cugraph-service/client/pyproject.toml +++ b/python/cugraph-service/client/pyproject.toml @@ -19,7 +19,7 @@ authors = [ license = { text = "Apache 2.0" } requires-python = ">=3.9" dependencies = [ - "thriftpy2", + "thriftpy2>=0.4.15", ] # This list was generated by `rapids-dependency-file-generator`. To make changes, edit ../../../dependencies.yaml and run `rapids-dependency-file-generator`. classifiers = [ "Intended Audience :: Developers", diff --git a/python/cugraph-service/server/pyproject.toml b/python/cugraph-service/server/pyproject.toml index f25ea6c46e5..9536b0bce00 100644 --- a/python/cugraph-service/server/pyproject.toml +++ b/python/cugraph-service/server/pyproject.toml @@ -30,7 +30,7 @@ dependencies = [ "numba>=0.57", "numpy>=1.21", "rmm==23.10.*", - "thriftpy2", + "thriftpy2>=0.4.15", "ucx-py==0.34.*", ] # This list was generated by `rapids-dependency-file-generator`. To make changes, edit ../../../dependencies.yaml and run `rapids-dependency-file-generator`. classifiers = [ diff --git a/python/cugraph/cugraph/sampling/uniform_neighbor_sample.py b/python/cugraph/cugraph/sampling/uniform_neighbor_sample.py index 219854bb002..011f78a61e2 100644 --- a/python/cugraph/cugraph/sampling/uniform_neighbor_sample.py +++ b/python/cugraph/cugraph/sampling/uniform_neighbor_sample.py @@ -76,17 +76,17 @@ def uniform_neighbor_sample( ---------- G : cugraph.Graph cuGraph graph, which contains connectivity information as dask cudf - edge list dataframe + edge list dataframe. start_list : list or cudf.Series (int32) - a list of starting vertices for sampling + a list of starting vertices for sampling. fanout_vals : list (int32) List of branching out (fan-out) degrees per starting vertex for each hop level. with_replacement: bool, optional (default=True) - Flag to specify if the random sampling is done with replacement + Flag to specify if the random sampling is done with replacement. with_edge_properties: bool, optional (default=False) Deprecated. @@ -95,7 +95,7 @@ def uniform_neighbor_sample( with_batch_ids: bool, optional (default=False) Flag to specify whether batch ids are present in the start_list - Assumes they are the last column in the start_list dataframe + Assumes they are the last column in the start_list dataframe. random_state: int, optional Random seed to use when making sampling calls. @@ -112,12 +112,11 @@ def uniform_neighbor_sample( Defaults to True. prior_sources_behavior: str, optional (default=None) - Options are "carryover", and "exclude". + Options are 'carryover', and 'exclude'. Default will leave the source list as-is. Carryover will carry over sources from previous hops to the - current hop. - Exclude will exclude sources from previous hops from reappearing - as sources in future hops. + current hop. Exclude will exclude sources from previous hops from + reappearing as sources in future hops. deduplicate_sources: bool, optional (default=False) Whether to first deduplicate the list of possible sources @@ -191,6 +190,7 @@ def uniform_neighbor_sample( Contains the renumber maps for each batch renumber_df['offsets']: cudf.Series Contains the batch offsets for the renumber maps + """ if with_edge_properties: