-
Notifications
You must be signed in to change notification settings - Fork 133
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Build instructions/scripts need to be updated. Unable to build. #217
Comments
Hi @mratsim , I'm looking into this. It looks like there is a conflict between the Halide that you are using, LLVM and the C++ standard library. The problem might be different but the following links might help: I'm trying to make Tiramisu work with the latest LLVM/Halide and that should help in solving this problem. I will let you know how things go. |
I followed the INSTALL instructions to build Tiramisu, but things didn't go as expected. Docker Image
PS: |
Yes, it's from a fork here: https://github.com/jrayzero/Halide/tree/tiramisu_64_bit Note that LLVM now lives on Github so submoduling may be easier: https://github.com/llvm/llvm-project |
Hi, |
You can use the original Halide. No need to use that specific version of Halide. You can look at the installation script: https://github.com/Tiramisu-Compiler/tiramisu/blob/master/utils/scripts/install_submodules.sh Disable the area of the script that installs that specific version of Halide, and then install your own Halide form the Halide main repo, and continue the remaining steps. |
Thank you @rbaghdadi |
I tried to follow instructions on an up-to-date archlinux distro with GCC 8.3.0 and Clang/LLVM 8.0.0 but had several issues with both LLVM and Halide and had to give up trying Tiramisu in the end.
Note that I can successfully build Halide from source. My last build was as of Feb 9 (https://github.com/halide/Halide/commits/d02247b3021549fde4bec8e600dced90f5d9a87c).
Build
I tried to use the install submodule script at https://github.com/Tiramisu-Compiler/tiramisu/blob/2ee529439fbfccf82f7351ee2e3c01f10387af26/utils/scripts/install_submodules.sh
LLVM
It fails for LLVM after reaching 100%.
Halide
The script launches the default compiler, GCC 8 on my machine (note that it works for current master branch Halide). But GCC 8 brought a lots of new warnings that needs to be ignored with:
-Wno-stringop-truncation (
/home/beta/Programming/DSL_Compilers_for_Tensors/tiramisu/3rdParty/Halide/src/Introspection.cpp:36:12: error: ‘char* strncpy(char*, const char*, size_t)’ specified bound 2048 equals destination size [-Werror=stringop-truncation]
)-Wno-catch-value (some polymorphic exception caught by value)
-Wno-format (
/home/beta/Programming/DSL_Compilers_for_Tensors/tiramisu/3rdParty/Halide/test/correctness/extern_producer.cpp:47:12: error: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘int64_t’ {aka ‘long int’} [-Werror=format=]
)-fpermissive
It would be good to force usage of the Clang 5.0 if that is the only supported one.
Object files
This part of Halide Makefile is deleting the objects that are supposed to be put in the static lib and the
make
command fails with file not found: https://github.com/jrayzero/Halide/blob/0e2cac7a2e3982d1a51d82932b185f75af05f4c2/Makefile#L670-L697LLVMHeaders
When building Halide it doesn't search the LLVM Headers in their proper place and I had to explicitly include 3rdParty/llvm/include
CuDNN variable
There is a CUDNN_LOCATION variable here
tiramisu/configure.cmake
Line 19 in 2ee5294
but during build I had a warning that CUDNN_LIBRARIES was not set.
Looking into this code:
tiramisu/CMakeLists.txt
Lines 41 to 42 in 11395ca
either CUDNN_LOCATION should be changed to LIB/INCLUDE similar to ISL and Halide:
tiramisu/configure.cmake
Lines 40 to 46 in 2ee5294
or CUDNN_LOCATION description
Change with the cudnn library location
should be made more clear that it's the directory parent to lib64/libcudnn.so and include/cudnn.h as naively people will set it to /usr/lib or /usr/lib64 instead of /usrThe text was updated successfully, but these errors were encountered: