Hedgehog is a header-only API that is designed to aid in creating dataflow graphs for algorithms to obtain performance across CPUs and multiple co-processors. This library represents the successor of the Hybrid Task Graph Scheduler (HTGS).
-
C++20 compiler (tested with gcc 11.1+, clang 10, and MSVC 14.33)
-
pthread
-
CUDA (https://developer.nvidia.com/cuda-zone) [optional]
-
GTEST (https://github.com/google/googletest) [optional / test]
-
For the static analysis (hh_cx) a compiler with the constexpr std::vector (P1004R2) and constexpr std::string (P0980R1) is needed, tested with gcc 12.1.0 +
CMake Options:
CMAKE_INSTALL_PREFIX - Where to install Hedgehog (and documentation)
TEST_HEDGEHOG - Compiles and runs google unit tests for Hedgehog ('make run-test' to re-run)
ENABLE_CHECK_CUDA - Enable extra checks for CUDA library if found
ENABLE_NVTX - Enable NVTX if CUDA is found
BUILD_MAIN - Build main file
:$ cd <Hedgehog_Directory>
:<Hedgehog_Directory>$ mkdir build && cd build
:<Hedgehog_Directory>/build$ ccmake ../ (or cmake-gui)
'Configure' and setup cmake parameters
'Configure' and 'Build'
:<Hedgehog_Directory>/build$ make
:<Hedgehog_Directory>/build$ [sudo] make install
Alexandre Bardakoff
Timothy Blattner
Walid Keyrouz
Bruno Bachelet
Loïc Yon
Mary Brady
We would like to thank Prof. Joel Falcou (https://www.lri.fr/~falcou/ / https://github.com/jfalcou) and Jules Penuchot (https://github.com/JPenuchot) for their advice!