Hedgehog  3.1.0
A library to generate hybrid pipeline workflow systems
Loading...
Searching...
No Matches
Hedgehog (hh) : A library to generate heterogeneous dataflow graphs

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).

Dependencies

1) C++20 compiler (tested with gcc 11.1+, clang 10, and MSVC 14.33)

2) pthread

3) CUDA (https://developer.nvidia.com/cuda-zone) [optional]

4) GTEST (https://github.com/google/googletest) [optional / test]

5) 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 +

Building Hedgehog

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

Tutorials

Hedgehog Tutorials

Credits

Alexandre Bardakoff

Timothy Blattner

Walid Keyrouz

Bruno Bachelet

Loïc Yon

Mary Brady

Special thanks

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!

Contact Us

Alexandre Bardakoff (alexandre.bardakoff ( at ) nist.gov

Timothy Blattner (timothy.blattner ( at ) nist.gov