RISC-V Pioneer Box for builder.sourceware.org gcc CI
Mark Wielaard
mark@klomp.org
Mon Aug 5 22:23:00 GMT 2024
Hi,
On Thu, Aug 01, 2024 at 11:07:20PM +0200, Mark Wielaard wrote:
> Thanks to RISC-V International and SOPHGO we got a Milk-V Pioneer Box
> [*] for builder.sourceware.org that we can use for gcc CI.
>
> It is running Fedora 38 with gdb 15.1, binutils 2.42 and gcc 14.1
> installed on top. We could create containers with other setups if
> useful.
>
> https://builder.sourceware.org/buildbot/#/builders/gcc-full-fedora-riscv
>
> Even though it has 64 cores, single core performance isn't very fast,
> so a gcc build and check takes ~10 hours. This is mostly because the
> gcc build has a lot of parallelism bottlenecks so those 64 cores are
> mostly idle during the build.
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84402
>
> Specifically one file takes ~6 hours to build, most of which isn't
> done in parallel with anything else.
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116166
The builder now applies a hack suggested in that bug that reduces the
build time from ~6 hours to ~4 hours 40 minutes.
> make check -j64 is very parallel though. It takes only 1.5 hours with
> all cores being busy most of the time.
>
> Test results are recorded in bunsen:
> https://builder.sourceware.org/testruns/?has_keyvalue_k=testrun.git_describe&has_keyvalue_op=glob&has_keyvalue_v=*gcc-full-fedora-riscv*
>
> PASS=572148 UNSUPPORTED=19063 XFAIL=4528 FAIL=584 XPASS=28 UNRESOLVED=15 WARNING=1
>
> As can be seen in the attached test summary report most failures are
> in gcc.target/riscv/rvv/rvv.exp I assume that is because the SG2042
> implements rvv 0.7.1 and not rvv 1.0. Is there a better way to
> configure gcc for that? Or maybe configure without rvv support at
> all?
It was suggested to just ignore the machine has rvv since it isn't 1.0
compliant. So it is now configured --with-arch=rv64gc --with-abi=lp64d
--with-multilib-list=lp64d but that didn't really change any of the
testresults since the rvv vector tests are still all run.
I guess that is because this only changes for which arch the runtime
libraries are compiled, not what instruction sets gcc itself will
produce code for.
> Configuration in in the builder repo, patches welcome:
> https://sourceware.org/cgit/builder/tree/builder/master.cfg#n4070
Thanks,
Mark
More information about the Gcc
mailing list