Closed Technorico closed 5 months ago
maybe try to git checkout a release version and create your own branch from that?
git checkout dynamatic-v2.0.0
Yep, now I get:
# ===--- Build successful! ---===
But I noticed this warning:
CMake Warning at CMakeLists.txt:119 (message): Gurobi wasn't found, the buffer placement algorithms that requires solving MILPs will not be built with the project.
And then, when running ninja check-dynamatic
, it fails the test:
ninja check-dynamatic
[0/1] Running the Dynamatic regression tests
FAIL: Dynamatic :: Conversion/CfToHandshake/memory.mlir (21 of 21)
******************** TEST 'Dynamatic :: Conversion/CfToHandshake/memory.mlir' FAILED ********************
Exit Code: 2
Command Output (stderr):
--
RUN: at line 2: path-to-dynamatic-dir/dynamatic/build/bin/dynamatic-opt --lower-cf-to-handshake --remove-operation-names path-to-dynamatic-dir/dynamatic/test/Conversion/CfToHandshake/memory.mlir --split-input-file | path-to-dynamatic-dir/dynamatic/polygeist/llvm-project/build/bin/FileCheck path-to-dynamatic-dir/dynamatic/test/Conversion/CfToHandshake/memory.mlir
+ path-to-dynamatic-dir/dynamatic/polygeist/llvm-project/build/bin/FileCheck path-to-dynamatic-dir/dynamatic/test/Conversion/CfToHandshake/memory.mlir
+ path-to-dynamatic-dir/dynamatic/build/bin/dynamatic-opt --lower-cf-to-handshake --remove-operation-names path-to-dynamatic-dir/dynamatic/test/Conversion/CfToHandshake/memory.mlir --split-input-file
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: path-to-dynamatic-dir/dynamatic/build/bin/dynamatic-opt --lower-cf-to-handshake --remove-operation-names path-to-dynamatic-dir/dynamatic/test/Conversion/CfToHandshake/memory.mlir --split-input-file
#0 0x0000000000419dd7 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (path-to-dynamatic-dir/dynamatic/build/bin/dynamatic-opt+0x419dd7)
#1 0x0000000000417bbe llvm::sys::RunSignalHandlers() (path-to-dynamatic-dir/dynamatic/build/bin/dynamatic-opt+0x417bbe)
#2 0x000000000041a73f SignalHandler(int) Signals.cpp:0:0
#3 0x00007fa162478420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
#4 0x00000000005c312b mlir::OperationName::getDialectNamespace() const (path-to-dynamatic-dir/dynamatic/build/bin/dynamatic-opt+0x5c312b)
#5 0x0000000000b07402 mlir::ConversionTarget::getOpInfo(mlir::OperationName) const (path-to-dynamatic-dir/dynamatic/build/bin/dynamatic-opt+0xb07402)
#6 0x0000000000b0768f mlir::ConversionTarget::isLegal(mlir::Operation*) const (path-to-dynamatic-dir/dynamatic/build/bin/dynamatic-opt+0xb0768f)
#7 0x0000000000b12173 (anonymous namespace)::OperationLegalizer::legalize(mlir::Operation*, mlir::ConversionPatternRewriter&) DialectConversion.cpp:0:0
#8 0x0000000000b09397 (anonymous namespace)::OperationConverter::convertOperations(llvm::ArrayRef, llvm::function_ref) DialectConversion.cpp:0:0
#9 0x0000000000b0c8f0 mlir::applyPartialConversion(mlir::Operation*, mlir::ConversionTarget const&, mlir::FrozenRewritePatternSet const&, llvm::DenseSet>*) (path-to-dynamatic-dir/dynamatic/build/bin/dynamatic-opt+0xb0c8f0)
#10 0x0000000000474125 dynamatic::partiallyLowerRegion(llvm::function_ref const&, mlir::Region&) (path-to-dynamatic-dir/dynamatic/build/bin/dynamatic-opt+0x474125)
#11 0x000000000047a7f6 (anonymous namespace)::CfToHandshakePass::runDynamaticPass() CfToHandshake.cpp:0:0
#12 0x0000000000458607 dynamatic::DynamaticPass::runOnOperation() (path-to-dynamatic-dir/dynamatic/build/bin/dynamatic-opt+0x458607)
#13 0x0000000000c0c615 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (path-to-dynamatic-dir/dynamatic/build/bin/dynamatic-opt+0xc0c615)
#14 0x0000000000c0cb98 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (path-to-dynamatic-dir/dynamatic/build/bin/dynamatic-opt+0xc0cb98)
#15 0x0000000000c0f087 mlir::PassManager::run(mlir::Operation*) (path-to-dynamatic-dir/dynamatic/build/bin/dynamatic-opt+0xc0f087)
#16 0x00000000008cc57f performActions(llvm::raw_ostream&, std::shared_ptr const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) MlirOptMain.cpp:0:0
#17 0x00000000008cb71b mlir::LogicalResult llvm::function_ref>, llvm::raw_ostream&)>::callback_fn>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&)::$_1>(long, std::unique_ptr>, llvm::raw_ostream&) MlirOptMain.cpp:0:0
#18 0x00000000008e908e mlir::splitAndProcessBuffer(std::unique_ptr>, llvm::function_ref>, llvm::raw_ostream&)>, llvm::raw_ostream&, bool, bool)::$_0::operator()(llvm::StringRef) const ToolUtilities.cpp:0:0
#19 0x00000000008e8efe mlir::splitAndProcessBuffer(std::unique_ptr>, llvm::function_ref>, llvm::raw_ostream&)>, llvm::raw_ostream&, bool, bool) (path-to-dynamatic-dir/dynamatic/build/bin/dynamatic-opt+0x8e8efe)
#20 0x00000000008c7d8a mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&) (path-to-dynamatic-dir/dynamatic/build/bin/dynamatic-opt+0x8c7d8a)
#21 0x00000000008c8262 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) (path-to-dynamatic-dir/dynamatic/build/bin/dynamatic-opt+0x8c8262)
#22 0x0000000000409124 main (path-to-dynamatic-dir/dynamatic/build/bin/dynamatic-opt+0x409124)
#23 0x00007fa161eec083 __libc_start_main /build/glibc-wuryBv/glibc-2.31/csu/../csu/libc-start.c:342:3
#24 0x0000000000408d1e _start (path-to-dynamatic-dir/dynamatic/build/bin/dynamatic-opt+0x408d1e)
FileCheck error: '' is empty.
FileCheck command line: path-to-dynamatic-dir/dynamatic/polygeist/llvm-project/build/bin/FileCheck path-to-dynamatic-dir/dynamatic/test/Conversion/CfToHandshake/memory.mlir
--
********************
********************
Failed Tests (1):
Dynamatic :: Conversion/CfToHandshake/memory.mlir
Testing Time: 0.51s
Passed: 20
Failed: 1
FAILED: test/CMakeFiles/check-dynamatic path-to-dynamatic-dir/dynamatic/build/test/CMakeFiles/check-dynamatic
cd path-to-dynamatic-dir/dynamatic/build/test && /usr/bin/python3.8 path-to-dynamatic-dir/dynamatic/polygeist/llvm-project/build/./bin/llvm-lit -sv path-to-dynamatic-dir/dynamatic/build/test
ninja: build stopped: subcommand failed.
Thank you for the help
Edit: I removed personal information from error codes
Ok, there are two separate problems here:
First, you need to get and set up a Gurobi license and install Gurobi on your machine to use some of the advanced performance optimization features in this framework, you got that warning because Gurobi is missing; you could check out https://github.com/Jiahui17/dynamatic-scripts (only the Prerequisite: get your Gurobi license section). Gurobi is a commercial MILP solver that also offers a free academic license.
I think the bug in the test is not a huge problem if you want to try out synthesizing and simulating some C kernels (check out https://github.com/EPFL-LAP/dynamatic/blob/main/docs/Tutorials/Introduction/UsingDynamatic.md).
You are right, the failed test is not a problem. Now the tool runs and for what I tried with tutorials behaves correctly.
I suggest to add the git checkout
info to Readme file.
Thank you very much @Jiahui17 for the help. :thumbsup:
Hi everyone, I am unable to get the project compiled. After following the passes of your guide, and launching "./build.sh --release", I get
# ===--- Build failed! ---===
The reason of the error reported by build script is:ninja: build stopped: subcommand failed.
Scrolling up in the output I found this error, I don't know if it is useful:I am using Ubuntu Ubuntu 20.04.6 LTS x64 If you need more information feel free to ask. Thank you in advance for the help.