Re: [Mesa-dev] Profile-guides optimizations

2020-02-13 Thread Timur Kristóf
The GCC wiki says: "GCC uses execution profiles consisting of basic block and edge frequency counts to guide optimizations such as instruction scheduling, basic block reordering, function splitting, and register allocation." More info here: https://gcc.gnu.org/wiki/AutoFDO/Tutorial Timur On

Re: [Mesa-dev] Profile-guides optimizations

2020-02-13 Thread Marek Olšák
Yeah I guess it reduces instruction cache misses, but then other codepaths are likely to get more misses. Does it do anything smarter? Marek On Thu., Feb. 13, 2020, 17:52 Dave Airlie, wrote: > On Fri, 14 Feb 2020 at 08:22, Marek Olšák wrote: > > > > I wonder what PGO really does other than

Re: [Mesa-dev] Profile-guides optimizations

2020-02-13 Thread Dave Airlie
On Fri, 14 Feb 2020 at 08:22, Marek Olšák wrote: > > I wonder what PGO really does other than placing likely/unlikely. With LTO it can do a lot more, like grouping hot functions into closer regions so they avoid TLB misses and faults etc. Dave. ___

Re: [Mesa-dev] Profile-guides optimizations

2020-02-13 Thread Marek Olšák
I wonder what PGO really does other than placing likely/unlikely. Marek On Thu., Feb. 13, 2020, 13:43 Dylan Baker, wrote: > I actually spent a bunch of time toying with PGO a couple of years ago. I > got > the guidance all working and was able to train it, but what we found was > that it >

[Mesa-dev] [ANNOUNCE] mesa 19.3.4

2020-02-13 Thread Dylan Baker
Hi List, Mesa 19.3.4 is now available. There's lots of stuff here, but also a ton of release process data changes. We've got changes all over the tree, but aco and anv are leading the way in changes. Dylan Shortlog Bas Nieuwenhuizen (1): radv: Do not set SX DISABLE bits for

Re: [Mesa-dev] Profile-guides optimizations

2020-02-13 Thread Dylan Baker
I actually spent a bunch of time toying with PGO a couple of years ago. I got the guidance all working and was able to train it, but what we found was that it made the specific workloads we threw at it much faster, but it made every real world use case I tried (playing a game, running piglit,

[Mesa-dev] [ANNOUNCE] mesa 20.0.0-rc3

2020-02-13 Thread Dylan Baker
Hi list, Mesa 20.0.0-rc3 is now available. This is a much smaller release than last time, things seem to be slowing down nicely, and the number of opened issues/MRs against the 20.0 release milestone is 2; I'm hopeful that means we can have the 20.0 release next week, and begin the normal release

[Mesa-dev] Profile-guides optimizations

2020-02-13 Thread Marek Olšák
[Forked from the other thread] Guys, we could run some simple tests similar to piglit/drawoverhead as the last step of the pgo=generate build. Tests like that should exercise the most common codepaths in drivers. We could add subtests that we care about the most. Marek On Thu., Feb. 13, 2020,

Re: [Mesa-dev] Merging experimental r600/nir code

2020-02-13 Thread Dylan Baker
meson has buildtins for both of these, -Db_lto=true turns on lto, for pgo you would run: meson build -Db_pgo=generate ninja -C build meson configure build -Db_pgo=use ninja -C build Quoting Marek Olšák (2020-02-12 10:46:12) > How do you enable LTO+PGO? Is it something we could enable by default

Re: [Mesa-dev] Merging experimental r600/nir code

2020-02-13 Thread Michel Dänzer
On 2020-02-12 7:46 p.m., Marek Olšák wrote: > How do you enable LTO+PGO? Is it something we could enable by default for > release builds? Enabling LTO for Mesa, I get a lot of warnings about issues affecting it specifically, making me doubt that it's currently safe in general, in particular for

Re: [Mesa-dev] Merging experimental r600/nir code

2020-02-13 Thread Eero Tamminen
Hi, On 13.2.2020 10.38, Timur Kristóf wrote: I think the question about PGO is this: are the profiles of the users' applications gonna be the same as the profile that is collected from the benchmarks? Eg. if the test benchmark uses different draw calls or triggers different shader compiler

Re: [Mesa-dev] Merging experimental r600/nir code

2020-02-13 Thread Timur Kristóf
I think the question about PGO is this: are the profiles of the users' applications gonna be the same as the profile that is collected from the benchmarks? Eg. if the test benchmark uses different draw calls or triggers different shader compiler code paths than a your favourite game, in theory