-
Notifications
You must be signed in to change notification settings - Fork 359
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
RISC-V Target is missing support for -mabi=lp64d based systems #749
Comments
The fastest workaround that I see is that you manually modify blis/config/rv64i/make_defs.mk Line 49 in 6b894c3
and revise the ABI to You raise a good point here. There is not ABI detection. The RISC-V targets choose what we assumed is the most common one. For a generic rv64i target, we assumed this to be @leekillough Do you have more thoughts on this? |
I will add ABI auto-detection, just like architecture auto-detection which already exists ( frame/base/bli_riscv_detect_arch.h ), but the stubs symptom is more of a toolchain issue. In my toolchain build script, I have:
|
The workaround of changing line 49 to -mabi=lp64d does work for me and the checks all pass but it does not use the CPU's full feature set of rv64imafdc_zicsr_zba_zbb as I think your code its restricted to rv64i so it may run slower thank it could. |
The code currently detects Clang does not enable the You can test the autodetection method this way:
I will submit a PR shortly. |
Thank you. Do you plan to create a release in the near future with the RISC V code included? |
I think BLIS is mostly released on a continuous integration model, so the latest |
That is correct but some distributions like GENTOO tend to wait for an official release before providing the updated package. |
@apcameron: In case it wasn't clear, The BLIS RISC-V implementation intentionally does not pass floating-point to assembly functions by value, so the "base" ABI of PR750 should make the missing headers error go away, and may negligibly improve performance by using |
RISC-V Target is missing support for -mabi=lp64d based systems such as the Starfive Visionfive 2 Processor
-mabi=lp64d -march=rv64imafdc_zicsr_zba_zbb -mcpu=sifive-u74 -mtune=sifive-7-series.
The rv64i does not seem to build on it
It gives the following error
StarFive ~/Downloads/blis # make
Generating monolithic blis.h..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
Generated include/rv64i/blis.h
Compiling obj/rv64i/config/rv64i/bli_cntx_init_rv64i.o ('rv64i' CFLAGS for config code)
In file included from /usr/include/features.h:515,
from /usr/include/bits/libc-header-start.h:33,
from /usr/include/stdio.h:27,
from ./frame/include//bli_system.h:46,
from config/rv64i/bli_cntx_init_rv64i.c:35:
/usr/include/gnu/stubs.h:14:11: fatal error: gnu/stubs-lp64.h: No such file or directory
The reason for this is it needs to include stubs-lp64d.h for this processor.
The text was updated successfully, but these errors were encountered: