-
Notifications
You must be signed in to change notification settings - Fork 248
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
RVV 1.0 integration testing on real hardware #1184
base: master
Are you sure you want to change the base?
RVV 1.0 integration testing on real hardware #1184
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you @alitariq4589 , I left you some comments
@mr-c I made all the changes you requested. Also, previously, the compile was for riscv64 default target (which was rv64gc). Now I have added |
Thank you @alitariq4589 ; this is exactly the sort of issue we want to catch using CI! @zengdage @howjmay @eric900115 Can you look into this compile errors when using Details
|
@alitariq4589 @mr-c Hi, I think the compiler errors are caused by
|
@zengdage Thanks for providing me the link to the patch changelog. I added the compilation flag which you requested. However, it is unrecognized in the RISC-V 64 GNU GCC cross-compiler. Also, I am using RISC-V 64-bit GNU cross compiler (nightly build pre-release version April 12, 2024 which is the latest version in pre-release list) on x86 because compiling the source code on K230 kendryte is very time-consuming because of the lack of compute resources on it. Also, I have tried searching for |
@alitariq4589 please look at that, https://godbolt.org/z/r7Ksbo1oP , I think it's the usage of |
@zengdage Thanks for referring me to the link. The compiler version in the environment is 13.2.0. I will update the compiler to 14.1.0 and will try to compile again. |
I have compiled the master branch from source and the compiled binary includes gcc version 13.2.0. I think latest version 14.1.0 is not yet upstreamed in the RISC-V GNU Toolchain cross compilers which will cause us to wait till they do so. |
I have updated the riscv gnu toolchain version to 14.1.1 and also updated the CI files. Previous errors are resolved but there are some new errors in the log (full log available at: https://dash.cloud-v.co/view/SIMDe/job/simde/25/console). |
@zengdage Any thoughts? See https://dash.cloud-v.co/view/SIMDe/job/simde/25/console
|
@alitariq4589 Sorry for the late reply, and I don't know why it get these errors. I try to use the gcc 14.1 in Compiler Explorer, https://godbolt.org/z/4qzrdPs7v , and it can compile According to the google result, I think the issue have been fixed in gcc 14.1, so may you check that is something mismatched in your configurations. |
module load riscv64-gnu-glibc/14.1.1 | ||
riscv64-unknown-linux-gnu-gcc --version | ||
meson setup build --cross-file=./docker/cross-files/riscv64-gcc-13-unknown.cross -Db_lundef=false | ||
''' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does it need to be modified here? 13->14 ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The file could be renamed, but its contents don't mention the GCC version
c = ['riscv64-unknown-linux-gnu-gcc', '-march=rv64gcv_zvl256b', '-mrvv-vector-bits=zvl', '-mabi=lp64d', '-Ofast'] | ||
cpp = ['riscv64-unknown-linux-gnu-g++', '-march=rv64gcv_zvl256b', '-mrvv-vector-bits=zvl', '-mabi=lp64d', '-Ofast'] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Normally we don't build with -Ofast
, maybe that matters for your cross compiler?
c = ['riscv64-unknown-linux-gnu-gcc', '-march=rv64gcv_zvl256b', '-mrvv-vector-bits=zvl', '-mabi=lp64d', '-Ofast'] | |
cpp = ['riscv64-unknown-linux-gnu-g++', '-march=rv64gcv_zvl256b', '-mrvv-vector-bits=zvl', '-mabi=lp64d', '-Ofast'] | |
c = ['riscv64-unknown-linux-gnu-gcc', '-march=rv64gcv_zvl256b', '-mrvv-vector-bits=zvl', '-mabi=lp64d', '-O3'] | |
cpp = ['riscv64-unknown-linux-gnu-g++', '-march=rv64gcv_zvl256b', '-mrvv-vector-bits=zvl', '-mabi=lp64d', '-O3'] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the suggestion. I will try rebuilding it without -Ofast
flag
@mr-c @zengdage I have run the build with
I have not yet configured the pipeline to publish the |
Update: I have updated the pipeline file to archive artifacts of builds. The latest build is #39 where you can check the |
Huh, that is a lot of errors. I guess they need reporting upstream. Do you get the same errors without |
@mr-c I tried building and running this just for RV64GC in the past (i.e. without vector extension flags) and it ran successfully. The build log is available at private CI pipeline here |
This PR contains a
riscv64-cross.txt
file for cross compiling for riscv64 architecture on meson, acloud-v-pipeline
file for CI flow and a Makefile for running tests on RISC-V architecture (since meson fails when binaries are transferred from one platform to the other).The Makefile contains a very simple bash script in it which executes are the executables in the
build/test
directory recursively and prints out the passed and failed tests' count along with the total number of counts.Currently the passing criteria is that all the binaries should be executed with a return code of zero. Else the test will fail.
A complete CI build of this is present at: https://dash.cloud-v.co/blue/organizations/jenkins/simde-fork/detail/simde-fork/48/pipeline/51/