Skip to content
This repository has been archived by the owner on Dec 22, 2022. It is now read-only.

Doxygen, CMake/Make improvements, MST algorithm, bug fixes and more! #135

Merged
merged 47 commits into from
May 3, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
e63ec51
Thrust bump, new async policy. Proper includes.
neoblizz Feb 15, 2022
294db60
initial MST CPU implementation
annielytical Feb 18, 2022
cc8e067
Merge branch 'gunrock:master' into master
annielytical Feb 18, 2022
76176b0
initial commit for mst parallel
annielytical Feb 22, 2022
c6b2232
use thrust vectors; has shared pointer seg fault
annielytical Feb 27, 2022
15a6276
fixed memory issues; still many TODOs
annielytical Feb 27, 2022
b132378
add back in jump pointers parallel
annielytical Feb 27, 2022
a260972
use output of advance for for each
annielytical Feb 27, 2022
e6fb75c
filter after advance (not functioning properly)
annielytical Feb 28, 2022
7ea703a
working alg using parallel fors
annielytical Feb 28, 2022
bfdb3ea
Merge branch 'gunrock:master' into master
annielytical Feb 28, 2022
d98548b
partially resolve races
annielytical Feb 28, 2022
f70d496
Merge branch 'master' of github.com:annielytical/essentials
annielytical Feb 28, 2022
a7ed1f4
switch parallel fors to filters
annielytical Feb 28, 2022
4814761
prevent loops; extra filters for frontier
annielytical Mar 14, 2022
b6f40ad
printing etc
annielytical Mar 14, 2022
200c118
CPU tests for SpMV.
neoblizz Mar 15, 2022
9328eb1
Another implementation of neighborreduce.
neoblizz Mar 15, 2022
d952212
cleanup
annielytical Mar 17, 2022
e0c3c19
fix for loops / multi-directional edges
annielytical Mar 21, 2022
ba99900
cleanup
annielytical Mar 21, 2022
c3880d3
exit if not symmetric
annielytical Mar 21, 2022
d32dfd3
cleanup
annielytical Mar 21, 2022
51a216b
speedup
annielytical Mar 22, 2022
c6e420f
revert csr
annielytical Mar 22, 2022
c75c18a
mst cpu comments
annielytical Mar 22, 2022
310df2a
parse command-line arguments
annielytical Mar 22, 2022
77a28c7
use math::atomic::exch
annielytical Mar 22, 2022
35aaf95
formatting
annielytical Mar 22, 2022
b45e2b0
remove duplicate matrix market check
annielytical Mar 22, 2022
7a5401c
PR fixes
annielytical Mar 23, 2022
a89fa24
Minimum Spanning Tree (MST) algorithm. (#127)
neoblizz Mar 23, 2022
d557216
Unwrap asserts
maawad Apr 17, 2022
daf2d0e
Assume `size_t` when loading graph
maawad Apr 17, 2022
0e130fa
Update helper header
maawad Apr 17, 2022
d1aa882
Group standard includes
maawad Apr 17, 2022
10e76a5
Add runtime api for `cudaError_t`
maawad Apr 17, 2022
7cb387c
Add missing include guard
maawad Apr 17, 2022
d8b847a
Use `std::size_t` in definitions
maawad Apr 17, 2022
132ef4a
Include `cstddef`
maawad Apr 17, 2022
c9626f0
Merge pull request #132 from maawad/bug-market-loader
neoblizz Apr 18, 2022
666c608
Merge general changes from spmv branch
jdwapman Apr 21, 2022
6e600bd
Use an older arch
jdwapman Apr 21, 2022
61cf80c
Merge pull request #134 from jdwapman/dev_pull
neoblizz Apr 22, 2022
dd56382
Doxygen support.
neoblizz May 2, 2022
008fafb
Initial build of doxygen docs/API.
neoblizz May 2, 2022
65c0dfd
Moved to docs for github pages.
neoblizz May 2, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,11 @@ eval/

# Ignore build directory
build
build_release
build_debug

# Ignore external fetched content
externals/*

# Ignore slurm files
slurm-*.out
10 changes: 9 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ set(PROJECT_DEPS_DIR externals)
include(${PROJECT_SOURCE_DIR}/cmake/FetchThrustCUB.cmake)
include(${PROJECT_SOURCE_DIR}/cmake/FetchModernGPU.cmake)
include(${PROJECT_SOURCE_DIR}/cmake/FetchCXXOpts.cmake)
include(${PROJECT_SOURCE_DIR}/cmake/FetchRapidJSON.cmake)
include(${PROJECT_SOURCE_DIR}/cmake/FetchNlohmannJson.cmake)
# end /* Include cmake modules */

## Set the directory where the binaries will be stored
Expand Down Expand Up @@ -111,6 +113,7 @@ target_include_directories(essentials
INTERFACE ${CUB_INCLUDE_DIR}
INTERFACE ${MODERNGPU_INCLUDE_DIR}
INTERFACE ${RAPIDJSON_INCLUDE_DIR}
INTERFACE ${NHLOMANN_JSON_INCLUDE_DIR}
INTERFACE ${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES}
)

Expand All @@ -120,6 +123,7 @@ target_include_directories(essentials
target_link_libraries(essentials
INTERFACE curand
INTERFACE cuda
INTERFACE cusparse
)

####################################################
Expand Down Expand Up @@ -162,6 +166,9 @@ set(CUDA_FLAGS
# --device-debug # Device debug
)

set(CMAKE_CUDA_FLAGS_DEBUG "--optimize 0 --debug --device-debug -g -G")
set(CMAKE_CUDA_FLAGS_RELEASE "--optimize 3")

####################################################
############ TARGET COMPILE OPTIONS ################
####################################################
Expand All @@ -187,11 +194,12 @@ endif(ESSENTIALS_BUILD_EXAMPLES)
####################################################
option(ESSENTIALS_BUILD_TESTS
"If on, builds the unit tests."
OFF)
ON)

# Subdirectories for examples, testing and documentation
if(ESSENTIALS_BUILD_TESTS)
include(${PROJECT_SOURCE_DIR}/cmake/FetchGoogleTest.cmake)
enable_testing()
add_subdirectory(unittests)
endif(ESSENTIALS_BUILD_TESTS)

Expand Down
28 changes: 28 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Simple Makefile to handle release/debug modes
# As well as other CMake command line args
# (which are hard to type and remember)

all: release

release:
mkdir -p build_release
cd build_release && cmake -DCMAKE_BUILD_TYPE=RELEASE ..
$(MAKE) -C ./build_release

debug:
mkdir -p build_debug
cd build_debug && cmake -DCMAKE_BUILD_TYPE=DEBUG ..
$(MAKE) -C ./build_debug

test: release
./build_release/bin/unittests

test_release: test

test_debug: debug
./build_debug/bin/unittests

clean:
rm -rf build_debug
rm -rf build_release
rm -rf externals
21 changes: 21 additions & 0 deletions cmake/FetchNlohmannJson.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
include(FetchContent)
set(FETCHCONTENT_QUIET ON)

message(STATUS "Cloning External Project: NLohmannJson")
get_filename_component(FC_BASE "../externals"
REALPATH BASE_DIR "${CMAKE_BINARY_DIR}")
set(FETCHCONTENT_BASE_DIR ${FC_BASE})

FetchContent_Declare(
json
GIT_REPOSITORY https://github.com/nlohmann/json.git
GIT_TAG v3.10.5
)

FetchContent_GetProperties(json)
if(NOT json_POPULATED)
FetchContent_Populate(
json
)
endif()
set(NHLOMANN_JSON_INCLUDE_DIR "${json_SOURCE_DIR}/include")
21 changes: 21 additions & 0 deletions cmake/FetchRapidJSON.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
include(FetchContent)
set(FETCHCONTENT_QUIET ON)

message(STATUS "Cloning External Project: RapidJSON")
get_filename_component(FC_BASE "../externals"
REALPATH BASE_DIR "${CMAKE_BINARY_DIR}")
set(FETCHCONTENT_BASE_DIR ${FC_BASE})

FetchContent_Declare(
rapidjson
GIT_REPOSITORY https://github.com/Tencent/rapidjson
GIT_TAG master
)

FetchContent_GetProperties(rapidjson)
if(NOT rapidjson_POPULATED)
FetchContent_Populate(
rapidjson
)
endif()
set(RAPIDJSON_INCLUDE_DIR "${rapidjson_SOURCE_DIR}/include")
2 changes: 1 addition & 1 deletion cmake/FetchThrustCUB.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ set(FETCHCONTENT_BASE_DIR ${FC_BASE})
FetchContent_Declare(
thrust
GIT_REPOSITORY https://github.com/thrust/thrust.git
GIT_TAG 1.15.0
GIT_TAG 1.16.0
)

FetchContent_GetProperties(thrust)
Expand Down
332 changes: 332 additions & 0 deletions docs/advance_8hxx.html

Large diffs are not rendered by default.

5 changes: 5 additions & 0 deletions docs/advance_8hxx.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
var advance_8hxx =
[
[ "execute", "advance_8hxx.html#a375f2d93a2fed300665eb525b7f84cc6", null ],
[ "execute", "advance_8hxx.html#a16dc398057f73c2220e3bceddd2137b0", null ]
];
18 changes: 18 additions & 0 deletions docs/advance_8hxx__dep__incl.map
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<map id="/home/neoblizz/essentials/include/gunrock/framework/operators/advance/advance.hxx" name="/home/neoblizz/essentials/include/gunrock/framework/operators/advance/advance.hxx">
<area shape="rect" id="node2" href="$operators_8hxx.html" title="/home/neoblizz/essentials\l/include/gunrock/framework\l/operators/operators.hxx" alt="" coords="1285,109,1467,165"/>
<area shape="rect" id="node3" href="$framework_8hxx.html" title="/home/neoblizz/essentials\l/include/gunrock/framework\l/framework.hxx" alt="" coords="1285,213,1467,269"/>
<area shape="rect" id="node4" href="$algorithms_8hxx.html" title="/home/neoblizz/essentials\l/include/gunrock/algorithms\l/algorithms.hxx" alt="" coords="1285,317,1467,373"/>
<area shape="rect" id="node5" href="$bc_8hxx.html" title="Betweeness Centrality. " alt="" coords="5,429,229,470"/>
<area shape="rect" id="node6" href="$bfs_8hxx_source.html" title="/home/neoblizz/essentials\l/include/gunrock/algorithms\l/bfs.hxx" alt="" coords="253,421,435,477"/>
<area shape="rect" id="node7" href="$color_8hxx.html" title="Graph Coloring algorithm. " alt="" coords="459,421,640,477"/>
<area shape="rect" id="node8" href="$experimental_2async_2bfs_8hxx_source.html" title="/home/neoblizz/essentials\l/include/gunrock/algorithms\l/experimental/async/bfs.hxx" alt="" coords="664,421,851,477"/>
<area shape="rect" id="node9" href="$geo_8hxx.html" title="/home/neoblizz/essentials\l/include/gunrock/algorithms\l/geo.hxx" alt="" coords="875,421,1056,477"/>
<area shape="rect" id="node10" href="$hits_8hxx.html" title="Hyperlink&#45;Induced Topic Search. " alt="" coords="1080,421,1261,477"/>
<area shape="rect" id="node11" href="$kcore_8hxx.html" title="Vertex k&#45;core decomposition algorithm. " alt="" coords="1285,421,1467,477"/>
<area shape="rect" id="node12" href="$mst_8hxx.html" title="Minimum Spanning Tree algorithm. " alt="" coords="1491,421,1672,477"/>
<area shape="rect" id="node13" href="$ppr_8hxx.html" title="Personalized Page&#45;Rank. " alt="" coords="1696,421,1877,477"/>
<area shape="rect" id="node14" href="$pr_8hxx.html" title="PageRank. " alt="" coords="1901,429,2123,470"/>
<area shape="rect" id="node15" href="$spgemm_8hxx.html" title="Sparse&#45;Matrix&#45;Matrix multiplication. " alt="" coords="2147,421,2328,477"/>
<area shape="rect" id="node16" href="$spmv_8hxx.html" title="Sparse&#45;Matrix Vector Multiplication. " alt="" coords="2352,421,2533,477"/>
<area shape="rect" id="node17" href="$sssp_8hxx.html" title="Single&#45;Source Shortest Path algorithm. " alt="" coords="2557,421,2739,477"/>
</map>
1 change: 1 addition & 0 deletions docs/advance_8hxx__dep__incl.md5
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
967a34d64f697a3f8c7a9bae9507728c
Binary file added docs/advance_8hxx__dep__incl.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 10 additions & 0 deletions docs/advance_8hxx__incl.map
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<map id="/home/neoblizz/essentials/include/gunrock/framework/operators/advance/advance.hxx" name="/home/neoblizz/essentials/include/gunrock/framework/operators/advance/advance.hxx">
<area shape="rect" id="node5" href="$operators_2configs_8hxx_source.html" title="gunrock/framework/operators\l/configs.hxx" alt="" coords="1582,288,1773,329"/>
<area shape="rect" id="node6" href="$helpers_8hxx.html" title="Helper functions for Advance operators. " alt="" coords="343,109,534,151"/>
<area shape="rect" id="node10" href="$merge__path_8hxx.html" title="gunrock/framework/operators\l/advance/merge_path.hxx" alt="" coords="1127,109,1318,151"/>
<area shape="rect" id="node15" href="$merge__path__v2_8hxx.html" title="gunrock/framework/operators\l/advance/merge_path_v2.hxx" alt="" coords="1342,109,1535,151"/>
<area shape="rect" id="node18" href="$thread__mapped_8hxx.html" title="Advance operator where a vertex/edge is mapped to a thread. " alt="" coords="1559,109,1753,151"/>
<area shape="rect" id="node22" href="$block__mapped_8hxx.html" title="gunrock/framework/operators\l/advance/block_mapped.hxx" alt="" coords="2043,109,2234,151"/>
<area shape="rect" id="node26" href="$bucketing_8hxx.html" title="gunrock/framework/operators\l/advance/bucketing.hxx" alt="" coords="1777,109,1967,151"/>
<area shape="rect" id="node19" href="$for_8hxx_source.html" title="gunrock/framework/operators\l/for/for.hxx" alt="" coords="1347,199,1538,240"/>
</map>
1 change: 1 addition & 0 deletions docs/advance_8hxx__incl.md5
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
6a3b97bd5a82a7e94c7e0da7b1c122f6
Binary file added docs/advance_8hxx__incl.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
109 changes: 109 additions & 0 deletions docs/advance_8hxx_source.html

Large diffs are not rendered by default.

Loading