Re: Lots of FAILs in gcc.target/riscv/rvv/autovec/*

2023-11-08 Thread Jeff Law via Gcc




On 11/7/23 21:31, Maxim Blinov wrote:

I see, thanks for clarifying, that makes sense.

In that case, what about doing the inverse? I mean, are there unique
patches in the vendor branch, and would it be useful to try to
upstream them into master? My motivation is to get the best
autovectorized code for RISC-V.
There should be nothing on the vendor branch that is not already on the 
trunk.  If there is, something has gone horribly wrong.


The process we've used over there is pretty simple.  Start with the 
gcc-13 branch, then cherry pick risc-v backend & testsuite changes from 
the trunk as well as limited target independent changes (primarily those 
which the risc-v backend depends on, or which we know/expect are 
important for risc-v for one reason or another).






I had a go at building the TSVC benchmark (in the llvm-test-suite[1]
repository) both with the master and vendor branch gcc, and noticed
that the vendor branch gcc generally beats master in generating more
vector instructions.

If I simply count the number of instances of each vector instruction,
the average across all 36 test cases of vendor vs master gcc features
the following most prominent differences:

- vmv.x.s:48 vs   0 (+ 48)
- vle32.v:   150 vs  50 (+ 100)
- vrgather.vv:61 vs   0 (+ 61)
- vslidedown.vi:  61 vs   0 (+ 61)
- vse32.v:   472 vs 213 (+ 459)
- vmsgtu.vi:  30 vs   0 (+ 30)
- vadd.vi:80 vs  30 (+ 50)
- vlm.v:  18 vs   0 (+ 18)
- vsm.v:  16 vs   0 (+ 16)
- vmv4r.v:21 vs   7 (+ 14)

(For reference, the benchmarks are all between 20k-30k in code size.
Built with `-march=rv64imafdcv -O3`.)

Ofcourse that doesn't say anything about performance, but would it be
possible/fair to say that the vendor branch may still be better than
master for generating vectorized code for RISC-V?




What's interesting is that there's very little "regression" - I saw
only very few cases where the vendor branch removed a vector
instruction as compared to master gcc (the most often removed
instruction by the vendor branch, as compared to master, is
vsetvl/vsetvli.)
If the vendor branch is generating better code than the trunk then 
that's an indication that target independent changes on the trunk from 
the gcc-14 development cycle need some work ;)


Just comparing the static number of instructions isn't useful at all 
IMHO.  Now you can get dynamic instructions from various QEMU plugins at 
which point the data becomes much more interesting -- though you have to 
be careful interpreting that as well.



Jeff


Re: Checks that autotools generated files were re-generated correctly

2023-11-08 Thread Mark Wielaard
Hi Martin,

On Mon, Nov 06, 2023 at 06:04:48PM +0100, Martin Jambor wrote:
> I have inherited Martin Liška's buildbot script that checks that all
> sorts of autotools generated files, mainly configure scripts, were
> re-generated correctly when appropriate.  While the checks are hopefully
> useful, they report issues surprisingly often and reporting them feels
> especially unproductive.

Cool! A small python script cannot replace him of course. But it is
nice to get a small virtual mliska :)

> Could such checks be added to our server side push hooks so that commits
> introducing these breakages would get refused automatically.  While the
> check might be a bit expensive, it only needs to be run on files
> touching the generated files and/or the files these are generated from.

So this doesn't just need that script, but also an execution
environment that contains the right versions of the autotools. We
could install those of course, but running them from a git hook on
checkin indeed seems a little expensive.

Creating a container with the script and the right versions of all
tools might be the best thing. Then the script can be run from a cron
job or buildbot. Or even by someone hacking on the build/configure
scripts to make sure they are generating with the right tools.

builder.sourceware.org already contains various of such containers:
https://sourceware.org/cgit/builder/tree/builder/containers
https://sourceware.org/cgit/builder/tree/README_containers

Friday is Sourceware Open Office hour (#overseers on irc.libera.chat
at 18:00 UTC). We could hack something together then and see how to
hook it up.

Cheers,

Mark


Sourceware Open Office, Friday Novemer 10, 18:00 UTC

2023-11-08 Thread Mark Wielaard
Every second Friday of the month is the Sourceware Overseers Open
Office hour in #overseers on irc.libera.chat from 18:00 till 19:00
UTC. That is this Friday October 10th.

This time we will probably focus on integration of builder CI, Full,
Try builds and patchwork PreCommit-CI. But please feel free to drop by
with any Sourceware services and hosting questions. Or any services
that integrates with builder.sourceware.org, patchwork.sourceware.org
or snapshots.sourceware.org.

For this meeting we will also have a BBB meeting room:
https://bbb.sfconservancy.org/b/mar-aom-dmo-fko
(But the real discussion will be in the irc channel)

If you want to run your own meetings for any Sourceware project you
can create your own account at https://bbb.sfconservancy.org/b/signup
which we can then activate for you. Note: Anyone is able to join a
meeting, accounts are only required to create new meetings.

Of course you are welcome to drop into the #overseers channel at any
time and we can also be reached through email and bugzilla:
https://sourceware.org/mission.html#organization

If you aren't already and want to keep up to date on Sourceware
infrastructure services then please also subscribe to the overseers
mailinglist. https://sourceware.org/mailman/listinfo/overseers

We are also on the fediverse these days:
https://fosstodon.org/@sourceware

The Sourceware Project Leadership Committee also meets once a month to
discuss all community input. The committee will set priorities and
decide how to spend any funds, negotiate with hardware and service
partners, create budgets together with the Conservancy, or decides
when a new fundraising campaign is needed. Up till now we have been
able to add new services without needing to use any of the collected
funds. Our hardware partners have also been very generous with
providing extra servers when requested. The current committee includes
Frank Ch. Eigler, Christopher Faylor, Ian Kelling, Ian Lance Taylor,
Tom Tromey, Jon Turney, Mark J. Wielaard and Elena Zannoni.