-
Notifications
You must be signed in to change notification settings - Fork 1.6k
support OpenBLAS on the SiFive X280 which is RISC-V Vector 1.0 compliant. #3825
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
Conversation
very elegant where incx=1 has one codepath and others have other. |
This appears to require a vendor gcc right now ? |
yup, latest version only |
RISC-V vector intrinsic support comes with recent versions of clang/llvm. The vendor toolchain is solely needed for some additional compiler flags within makefile.riscv64 specific to the X280 target, and should not prevent anyone from using the RVV kernel support provided by this PR. @brada4 the separate code path for incx==1 is needed since the performance of unity load/store is significantly better than for strided access. At least in our experience. It would appear that this was also the experience of the C910V folks although we tried to implement throughout. Just an added note that this PR is being contributed by Microchip, where both Heller and I am employed. Hope this helps. |
The reason I'm asking is that I do not see the |
@ken-unger no pun intended, likely some generic implementations would compile to more efficient code if such healthy ideas are ported over. I found no defects compiling with freedom-tools built off github, nor today with clang15 and debian11 rv64 glibc. I trust you that builtin tests completed fine. |
Good point @martin-frbg. We will take a look and update. Also I see there is a merge issue in common_riscv64.h which we need to fix. |
I just striked out the mcpu parameter for clang15, probably |
@martin-frbg we made your suggested changes to the PR and fixed the merge error I noted. As @brada4 pointed out there was no need, in this case, for the proprietary flags. We hope this is sufficient for you to approve. |
I will merge this patch into risc-v branch at first. |
Some of the improvements with this RVV implementation: