CGRAs target loop kernels where the application spends significat fraction of the execution time. Morpher requires the user to annotate the specifica loop kernels to be mapped. Morpher DFG Generator extract the loop in an .xml file. Morpher supports control-divergence (i.e., existence of multiple control flow paths) inside the loop kernel through partial predication.
This version requires LLVM 10.0.0 and JSON libraries.
Read https://llvm.org/docs/GettingStarted.html follow https://github.com/llvm/llvm-project
git clone https://github.com/llvm/llvm-project.git
git checkout <correct version> (llvm10.0.0)
cd llvm-project
mkdir build
cd build
cmake -DLLVM_ENABLE_PROJECTS='polly;clang' -G "Unix Makefiles" ../llvm
make -j4
sudo make install
Important points:
make sure to checkout correct version before building
better to use gold linker instead of ld if you face memory problem while building: https://stackoverflow.com/questions/25197570/llvm-clang-compile-error-with-memory-exhausted
don't use release type use default debug version (will take about 70GB disk space)
https://blog.csdn.net/jiaken2660/article/details/105155257
git clone https://github.com/nlohmann/json.git
mkdir build
cd build
cmake ../
make -j2
sudo make install
cd Morpher_DFG_Generator
git checkout stable
mkdir build
cd build
cmake ..
make all
Please refer the parent repository (https://github.com/ecolab-nus/morpher)