-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Toolchain issues #82
Comments
I am sorry for the inconvenience… I currently provide various GCC (13/14) & LLVM (15-19) builds for Ubuntu 20.04 & 22.04. Unfortunately I ran out of the 50GB auf space I can use on the could service provider. To also upload 24.04 variants of the tools I would need ~5GB more which is currently difficult to free up. There is a likelihood that the 22.04 binaries also work on 24.04, so you could give it a try by hardcoding the Ubuntu version detected by the script. Regarding multilib support: Actually I have uploaded multilib toolschains to the Sync&Share yesterday. Feel free to give them a try, but it is highly likely that they will not work together with LLVM because RISC-V multilib support is basically broken since forever. This is the reason why we have to maintain many non-multilib builds instead of only one multilib-GCC. I would love to eliminate this issue, but guess it’s up to the RISC-V & LLVM community to deal with that. Some further notes:
If you need guidance in setting up muRISCV-NN and Vicuna, please feel free to reach out to us! |
Here you can browse for the available Toolchains: https://syncandshare.lrz.de/getlink/fiWBtDLWz17RBc1Yd4VDW7/ |
Hi, I actually tried rv32im_zve32x_zicsr_zifencei and an error message appeared as below. Could you comment on how this could be solved? Thanks in advance. ===========================================vincent@vincent-debug:~/Proj/muriscv-nn/build$ cmake -DSIMULATOR=Vicuna -DRISCV_GCC_PREFIX=$(pwd)/../Toolchain/rv32im_zicsr_zifencei_zve32x_ilp32 -DENABLE_INTG_TESTS=ON -DTOOLCHAIN=GCC -DUSE_VEXT=ON ..
is not able to compile a simple test program. It fails with the following output:
CMake will not be able to correctly generate this project. -- Configuring incomplete, errors occurred! |
@chchenl Of course. Since the TC was built with This should fix your build issue: diff --git a/CMakeLists.txt b/CMakeLists.txt
index 17300ed..93c72f7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -44,7 +44,7 @@ option(USE_PEXT "Use the RISC-V P Packed Extension" OFF)
# - rv32imzve32x / ilp32 -> integer only and embedded vector support (GCC only supports rv32imv!)
if("${SIMULATOR}" STREQUAL "Vicuna") # Vicuna only supports a reduced set of extensions
if(USE_VEXT)
- set(RISCV_ARCH "rv32imzve32x" CACHE STRING "march argument to the compiler, using the vector extension")
+ set(RISCV_ARCH "rv32im_zicsr_zifencei_zve32x" CACHE STRING "march argument to the compiler, using the vector extension")
elseif(USE_PEXT)
message(FATAL_ERROR "Vicuna does not support packed instructions.")
else() |
Hi, I modified the CMakeLists.txt accordingly, but it seems the error message remains the same.There seems to be 3 suspicious messagesIs this the reason why the cmake command failed? Thanks for info.(BTW, don't know why the font size here gets so large--sorry about that. --Fix now, the font size is much smaller.)================ cmake -DSIMULATOR=Vicuna -DRISCV_GCC_PREFIX=$(pwd)/../Toolchain/rv32im_zicsr_zifencei_zve32x_ilp32 -DENABLE_INTG_TESTS=ON -DTOOLCHAIN=GCC -DUSE_VEXT=ON ..
is not able to compile a simple test program. It fails with the following output:
CMake will not be able to correctly generate this project. |
Another message near the end...: /home/vincent/Proj/muriscv-nn/Toolchain/rv32im_zicsr_zifencei_zve32x_ilp32/bin/riscv32-unknown-elf-gcc -march=rv32imzve32x -mabi=ilp32 -mcmodel=medany -march=rv32imzve32x -mabi=ilp32 -mcmodel=medany CMakeFiles/cmTC_b7209.dir/testCCompiler.c.obj -o cmTC_b7209 |
@chchenl That’s odd. I tried the fix and it worked for me as expected. Here is some advice for further investigation:
|
Hi, Here is a new message, which seems to indicate I skipped some steps(downloading something?)--but I cannot tell if I skipped something from the readme file. I suspect it resuled from no-running Integration/tflm/download_tflm.sh along the way. But isn't this supposed to run automatically or invoked by some other (intermediate) script? I tried to manually issue 'download_tflm.sh', but the directory structure generated does not coincide with the directory structure the 'error message' expected, therefore you may have to manually adjust its structures. I guess this is not a 'standard' approach, though. cmake -DSIMULATOR=Vicuna -DRISCV_GCC_PREFIX=$(pwd)/../Toolchain/rv32im_zicsr_zifencei_zve32x_ilp32 -DENABLE_INTG_TESTS=ON -DTOOLCHAIN=GCC -DUSE_VEXT=ON ..
Tried extensions .c .C .c++ .cc .cpp .cxx .cu .mpp .m .M .mm .ixx .cppm CMake Error at Integration/tflm/CMakeLists.txt:19 (add_library): |
Hi PhilippvK, Another idea occurred to me. Or if I am on the wrong path to that goal, could you show me a proper path/sequence to that goal? Thanks. |
For reference an setting up and running the integration tests please refer to the CI scripts: https://github.com/tum-ei-eda/muriscv-nn/blob/master/.github/workflows/integration_tests.yml Instead of invoking cmake manually, you can use the Due to the various limitations/bugs in the upstream version of Vicuna ist it unlikely that the integration tests will work out-of-the box… |
The mentioned in the last post, the best „documentation/example“ on how to setup the flow is to look at the ci scripts which should be working 100% this week. It currently just uses Spike as Somulator, but we can look into integrating Vicuna there as well. |
The dowload_xxx.sh files seem not-working(using ubuntu 23.x or 24.x)
In vicuna RTL sim, if using built-in downloaded toolchain(version 22.x),
when the below command is issued(as prescribed in Sim/Vicuna/Readme file):
"cmake -DSIMULATOR=Vicuna -DRISCV_GCC_PREFIX=$(pwd)/../Toolchain/rv32imv/ -DENABLE_INTG_TESTS=ON -DTOOLCHAIN=GCC -DUSE_VEXT=ON .."
an error message saying that it cannot find 'multilib' required for the architecture rv32im_zvxxxx_zlxxx in the toolchain rv32imv (I cannot capture the screen right now. Probably I'll upload it sometime later.)
Or rather, a more detailed error message is: "cannot find suitable multilib set for -march=rv32im_zve32x_zvl32b'/' -mabi=ilp32.....", then this cmake command failed and terminated.
This raises another issue: is the built-in(downloaded) toolchain buit with '--enable-multilib' option enabled?
From the readme file, I guess the recommended approach for building one's own toolchain does not enable
this option.
Or if this issue is related to versions of gcc or any other utilities? I use gcc-13.2.
Thanks for any info.
--vincent
The text was updated successfully, but these errors were encountered: