From 6cf28acb6327196ba150b6427d1678a8066b20cf Mon Sep 17 00:00:00 2001 From: Joey Riches Date: Fri, 9 Feb 2024 14:15:44 +0000 Subject: [PATCH 1/3] devlog: Add post "Intro to optimizing packages on Solus" --- ...9-Intro-to-optimizing-packages-on-solus.md | 465 ++++++++++++++++++ devlog/perf_report_cwebp_png.webp | Bin 0 -> 84504 bytes devlog/perf_report_dwebp_png.webp | Bin 0 -> 73798 bytes devlog/perf_report_dwebp_yuv.webp | Bin 0 -> 61832 bytes 4 files changed, 465 insertions(+) create mode 100644 devlog/2024-02-09-Intro-to-optimizing-packages-on-solus.md create mode 100644 devlog/perf_report_cwebp_png.webp create mode 100644 devlog/perf_report_dwebp_png.webp create mode 100644 devlog/perf_report_dwebp_yuv.webp diff --git a/devlog/2024-02-09-Intro-to-optimizing-packages-on-solus.md b/devlog/2024-02-09-Intro-to-optimizing-packages-on-solus.md new file mode 100644 index 000000000..e6d7fea06 --- /dev/null +++ b/devlog/2024-02-09-Intro-to-optimizing-packages-on-solus.md @@ -0,0 +1,465 @@ +--- +title: Intro to Optimizing Packages on Solus +description: Explore how to employ advanced compiler techniques such as PGO, BOLT & Glibc HWCaps to squeeze extra performance from packages using libwebp as a test vehcile +slug: solus-optimizing-packages +authors: + - name: Joey Riches + title: Solus Staff + url: https://github.com/joebonrichie + image_url: https://avatars.githubusercontent.com/u/5338090?s=400&u=f77ed45c7e83814ce3e8bd199fc293bd5b53682b&v=4 +tags: [pgo, lto, solus, packaging, optimization, 03, clang, gnu, llvm, glibc, hwcaps, x86_64-v3] +hide_table_of_contents: false +--- + +We'll explore how to build packages with advanced compiler techniques in order to squeeze more performance out of the box for packages in Solus. We'll be using the story of how `libwebp` was optimized for and how it led to an unexpected side quest. + + + +# Por Qué la Cauza + +Linux distributions have a lot of control over how a source-based package gets compiled and shipped to users as part of a binary repository. Aggressive and advanced compiler optimization techniques, as well as other methods can be used to provide greater out of the box performance for end users. This can greatly benefit users running on older hardware to provide a snappier end-user experience; reducing time waiting on a heavy workload to finish; or even improved battery life; amongst other improvements. + +Part of the problem is, a packager's time is limited. So how, as a distribution, do you choose to try provide faster compatible packages for a end user. A historic approach is to simply change the default compiler flags for _all_ packages, such as enabling [LTO](https://en.wikipedia.org/wiki/Interprocedural_optimization) by default. Whilst this approach can work well, at Solus the philosophy is slightly different where a packager can trivially enable several advanced compiler optimization techniques such as [PGO](https://en.wikipedia.org/wiki/Profile-guided_optimization) without too much faffing around on a _targeted_ package. + +The benefits of such an approach are: + - Can target the performance of a specific package to benefit _all_ users + - A compiler optimization may improve one package, but may not apply globally to all packages. + +The downsides are such: + - Requires additional packager time to benchmark and experiment with different optimization strategies. + - Requires the packager to _choose_ and invest time into improving performance of a package. + - Requires the packager to find an appropriate benchmark to test the package against. + - Experimenting with compiler optimizations may not bear fruit: no meaningful improvement in performance, or there may be some other bottleneck. + +# Optimization Techniques Available + +- speed: + - As simple as it gets really, build a package with `-O3` instead of `-O2` as well as any other flags deemed worthy to be included as part of the `speed` flags. The main drawback of this is that `-O3` is not guaranteed to produce faster results than building with `-O2` and typically will produce bigger binaries. The days of `-O3` outright breaking your program in weird unexpected ways is largely behind us. +- LTO: + - Compared to some other distributions `-flto` is not yet enabled by default on Solus. LTO is almost guaranteed to provide a %1 or slightly larger performance improvement as well as a smaller binary at the cost of increased compiling times and memory usage during build. When combined with other optimization techniques such as PGO the LTO optimization can really stretch it's legs and provide even greater uplift! +- Clang: + - Not strictly an optimization, but, building a package with `clang` instead of `gcc` and `ld.ldd` to link instead of the infamous `ld.bfd` may provide a faster package out of the box. You'll have to be careful of subtle ABI differences if building with `clang`. If in doubt, and, `clang` is the obvious choice, perform safety rebuilds on all reverse dependencies of the package. +- PGO: + - Profile guided optimization. Build once with instrumentation in order to collect profile data when ran. Run the program using a representative workload in order to collect profiling data. Build the program again with the profiling data provided in order to build an optimized variant. +- BOLT: + - Binary optimization and layout tool. You can think of this as "post-link PGO" where you instrument a binary with `bolt` to collect profiling data. Run that binary. Then finally reorganize the binary layout using the collected profile data. This generally works better on large statically linked binaries but smaller binaries or libraries such as found in a typical package can benefit too. This optimization is still quite new. + +Regardless, that's enough word spaghetti, let's look at the process to actually optimize a package. + +# Optimizing a Package + +Right, to begin with we'll have to start on choosing an actual package to benchmark and optimize. I've heard the `.webp` file format is becoming increasingly common on the web, slowly replacing `.png` and `.jpg` file formats due to the strong backing of Google (for better or for worst). An improvement in decoding time for `.webp` files would benefit any user using a web browser casually browsing the web. + +Let's have a look at the `package.yml` build recipe for `libwebp`. + + +```yaml +name : libwebp +version : 1.3.2 +release : 25 +source : + - https://github.com/webmproject/libwebp/archive/refs/tags/v1.3.2.tar.gz : c2c2f521fa468e3c5949ab698c2da410f5dce1c5e99f5ad9e70e0e8446b86505 +homepage : https://developers.google.com/speed/webp/ +license : BSD-3-Clause +component : multimedia.codecs +summary : A new image format for the web +description: | + WebP is a new image format that provides lossless and lossy compression for images on the web. WebP lossless images are 26% smaller in size compared to PNGs. WebP lossy images are 25-34% smaller in size compared to JPEG images at equivalent SSIM index. WebP supports lossless transparency (also known as alpha channel) with just 22% additional bytes. Transparency is also supported with lossy compression and typically provides 3x smaller file sizes compared to PNG when lossy compression is acceptable for the red/green/blue color channels. +emul32 : yes +patterns : + - devel : /usr/share/man +builddeps : + - pkgconfig32(glu) + - pkgconfig32(glut) + - pkgconfig32(libpng) + - pkgconfig32(libtiff-4) + - pkgconfig32(libturbojpeg) + - pkgconfig32(zlib) + - giflib-devel +setup : | + %reconfigure --disable-static --enable-everything +build : | + %make +install : | + %make_install +``` + +Okay, looks to a quite simple affair. A simple configure, make, make install as well as `emul32` being enabled specifying the -32bit packages are also provided from this recipe. Next step is to look for a repeatable and easy way to benchmark it. We'll begin by looking at the `pspec_x86_64.xml` file which lists all the files produced from the `package.yml` recipe as well as some metadata. + +```xml + libwebp + A new image format for the web + WebP is a new image format that provides lossless and lossy compression for images on the web. WebP lossless images are 26% smaller in size compared to PNGs. WebP lossy images are 25-34% smaller in size compared to JPEG images at equivalent SSIM index. WebP supports lossless transparency (also known as alpha channel) with just 22% additional bytes. Transparency is also supported with lossy compression and typically provides 3x smaller file sizes compared to PNG when lossy compression is acceptable for the red/green/blue color channels. + + multimedia.codecs + + /usr/bin/cwebp + /usr/bin/dwebp + /usr/bin/gif2webp + /usr/bin/img2webp + /usr/bin/vwebp + /usr/bin/webpinfo + /usr/bin/webpmux +``` + +Perfect, we have `dwebp` and `cwebp` binaries available in the main package, which from a guess can be used to decode and encode `.webp` files. Let's try it out. + +``` +$ dwebp -h +Usage: dwebp in_file [options] [-o out_file] + +Decodes the WebP image file to PNG format [Default]. +Note: Animated WebP files are not supported. +$ cwebp -h +Usage: + + cwebp [options] -q quality input.png -o output.webp +``` + +Awesome, these binaries do exactly what we need to benchmark `libwebp`, but, we are also indirectly testing `libpng` as well for this benchmark, we'll have to keep an eye out for that. + +One extra step we have to do is ensure these binaries are actually linking against their own library, as upstream developers can have a habit of making sure their binaries don't link against their own libraries and end up being self-contained. Run `ldd` to verify. + +``` +$ ldd /usr/bin/dwebp + linux-vdso.so.1 (0x00007ffed8733000) + libwebpdemux.so.2 => /usr/lib/libwebpdemux.so.2.0.14 (0x00007f7473bb4000) + libwebp.so.7 => /usr/lib/libwebp.so.7.1.8 (0x00007f7473ae2000) + libpng16.so.16 => /usr/lib/libpng16.so.16 (0x00007f7473aa6000) + libc.so.6 => /usr/lib/glibc-hwcaps/x86-64-v3/libc.so.6 (0x00007f74738a9000) + libsharpyuv.so.0 => /usr/lib/libsharpyuv.so.0.0.1 (0x00007f747389e000) + libm.so.6 => /usr/lib/glibc-hwcaps/x86-64-v3/libm.so.6 (0x00007f74737b8000) + libz.so.1 => /usr/lib/libz.so.1.3.0 (0x00007f7473200000) + /usr/lib64/ld-linux-x86-64.so.2 (0x00007f7473bea000) +``` + +Awesome in this case both `dwebp` and `cwebp` link against `libwebp.so` so we can be confident that any performance improvements will be applicable to all packages in the repository linking against `libwebp`. + +Let's grab a couple of `.webp` files from [here](https://developers.google.com/speed/webp/gallery1) to test with. We'll just use the largest image size available in this case to reduce noise as much as possible when running benchmarks as well as allow any potential optimizations to stretch their legs a little more. + +Now having done the prep work, lets actually benchmark the damn thing using `hyperfine` for the time being. + +``` +$ hyperfine "dwebp ~/3.webp -o /dev/null" +Benchmark 1: dwebp ~/3.webp -o /dev/null + Time (mean ± σ): 202.2 ms ± 0.3 ms [User: 198.9 ms, System: 3.0 ms] + Range (min … max): 201.8 ms … 202.7 ms 14 runs +$ hyperfine "cwebp ~/PNG_Test.png -o /dev/null" +Benchmark 1: cwebp ~/PNG_Test.png -o /dev/null + Time (mean ± σ): 1.423 s ± 0.009 s [User: 1.346 s, System: 0.076 s] + Range (min … max): 1.410 s … 1.435 s 10 runs +``` + +There, we have our a basic baseline for encode and decode performance. We mostly care about decode performance here but improved encoding performance would also not go amiss. + +## Let's Start Obvious + +Let's start basic, enabling the `speed` optimization which basically builds with `-O3` instead of `-O2` as well as any other flags that are deemed to be worthy to be part of the `speed` group. As well as, the `lto` optimization which builds with link time optimization allowing for inter-procedural optimizations to take place. + + +```yaml +optimize: + - speed + - lto +``` + +Moment of truth... +``` +$ hyperfine "dwebp ~/3.webp -o /dev/null" +Benchmark 1: dwebp ~/3.webp -o /dev/null + Time (mean ± σ): 200.0 ms ± 1.5 ms [User: 197.3 ms, System: 2.5 ms] + Range (min … max): 198.1 ms … 203.2 ms 15 runs +$ hyperfine "cwebp ~/PNG_Test.png -o /dev/null" +Benchmark 1: cwebp ~/PNG_Test.png -o /dev/null + Time (mean ± σ): 1.353 s ± 0.012 s [User: 1.281 s, System: 0.071 s] + Range (min … max): 1.336 s … 1.369 s 10 runs +``` + +Well okay, we got a very minor uplift in decoding performance and a slightly higher improvement in encoding performance, but nothing too much to write home about. Luckily we have several more optimizations to explore... + +## PGO is great, except, when it isn't. + +Next step is to explore PGO (Profile Guided Optimization). For our `libwebp` package, looks like we already hit a bit of a snafu. There's no testsuite included in the tarball! That's a bit of a disappointment as a testsuite such as `make check` is by far and away the easiest and most comprehensive workload that can be used for profiling as part of PGO, especially for smaller libraries. However, we can still experiment with the just built `dwebp` and `cwebp` binaries as a suitable workload for PGO. + +Luckily, as part of the package.yml format all you have to do is provide a profile for automatic PGO. After chrooting into the build environment and fiddling around a bit we end up with: + + +```yaml +profile : | + ./examples/dwebp webp_js/test_webp_js.webp -o test_png.png + ./examples/cwebp test_png.png -o /dev/null +``` + +After specifying that, 6 builds will now be performed instead of 2: +- emul32: + - Instrumented build + - Run profiling workload + - Optimized build using profiling data +- x86_64: + - Instrumented build + - Run profiling workload + - Optimized build using profiling data + +For this relatively small package it increases the build time from 1m1.672s to 1m42.199s + +The next moment of truth... +``` +$ hyperfine "dwebp ~/3.webp -o /dev/null" +Benchmark 1: dwebp ~/3.webp -o /dev/null + Time (mean ± σ): 204.1 ms ± 2.2 ms [User: 201.3 ms, System: 2.7 ms] + Range (min … max): 201.6 ms … 207.1 ms 14 runs +$ hyperfine "cwebp ~/PNG_Test.png -o /dev/null" +Benchmark 1: cwebp ~/PNG_Test.png -o /dev/null + Time (mean ± σ): 1.349 s ± 0.010 s [User: 1.266 s, System: 0.082 s] + Range (min … max): 1.335 s … 1.374 s 10 runs +``` + +Well... That's interesting. We actually regress in performance for decode performance whilst gaining another small bump in encoding performance. Worst still, we get a bunch of `profile count data file not found [-Wmissing-profile]` warning messages during the optimized build indicating to us our profiling workload isn't comprehensive enough and doesn't cover enough code paths. The lack of a handy `make check` that could be used as a profiling workload is really hurting us here. For now, let's put in a pin in exploring PGO, it isn't a dead end but more work needs to be done curating a more comprehensive workload to chuck at it in this particular case, whilst other, easier, optimization techniques are still available to us. + +## 256 Vector Units go brrrrrr... + +The next obvious step is to explore `glibc` hardware capabilities. For those unaware both `clang` and `gnu` compilers provide `x86_64-v2`, `x86_64-v3` and `x86_64-v4` miroarchitechure build options on top of the baseline of `x86_64`. These enable the use of targeting additional CPU instruction sets during compilation for better performance. For example, `-sse4.2` for `x86_64-v2`, `-avx2` for `x86_64-v3`, and `-avx512` for `x86_64-v4`. + +Whilst that's great 'n all, if a program is built with `x86_64-v3` and gains an additional ~10% uplift in performance, it's no good if a `x86_64-v2` compatible cpu can't run it. Luckily the `glibc` loader that's found on almost general purpose linux installs provides a way to load higher or lower microarchitecture libraries if they're installed and supported. + +On top of all that, the `package.yml` format provides an incredibly simple way of providing `x86_64-v3` built libraries by enabling the `avx2 : yes` flag. + +With `avx2 : yes` enabled in the `libwebp` package three builds are performed. + +- emul32 +- x86_64-v3 +- x86_64 + +We now see these additional files in the `pspec_x86_64.xml` file +```diff ++ /usr/lib64/glibc-hwcaps/x86-64-v3/libsharpyuv.so.0 ++ /usr/lib64/glibc-hwcaps/x86-64-v3/libsharpyuv.so.0.0.1 ++ /usr/lib64/glibc-hwcaps/x86-64-v3/libwebp.so.7 ++ /usr/lib64/glibc-hwcaps/x86-64-v3/libwebp.so.7.1.8 ++ /usr/lib64/glibc-hwcaps/x86-64-v3/libwebpdecoder.so.3 ++ /usr/lib64/glibc-hwcaps/x86-64-v3/libwebpdecoder.so.3.1.8 ++ /usr/lib64/glibc-hwcaps/x86-64-v3/libwebpdemux.so.2 ++ /usr/lib64/glibc-hwcaps/x86-64-v3/libwebpdemux.so.2.0.14 ++ /usr/lib64/glibc-hwcaps/x86-64-v3/libwebpmux.so.3 ++ /usr/lib64/glibc-hwcaps/x86-64-v3/libwebpmux.so.3.0.13 +``` + +Let's rerun `lld` on `dwebp` after installing the new package and... +``` +$ ldd /usr/bin/dwebp + linux-vdso.so.1 (0x00007ffeab5b1000) + libwebpdemux.so.2 => /usr/lib/glibc-hwcaps/x86-64-v3/libwebpdemux.so.2.0.14 (0x00007f9a351d5000) + libwebp.so.7 => /usr/lib/glibc-hwcaps/x86-64-v3/libwebp.so.7.1.8 (0x00007f9a3510b000) + libpng16.so.16 => /usr/lib/libpng16.so.16 (0x00007f9a350cf000) + libc.so.6 => /usr/lib/glibc-hwcaps/x86-64-v3/libc.so.6 (0x00007f9a34ed2000) + libsharpyuv.so.0 => /usr/lib/glibc-hwcaps/x86-64-v3/libsharpyuv.so.0.0.1 (0x00007f9a34ec1000) + libm.so.6 => /usr/lib/glibc-hwcaps/x86-64-v3/libm.so.6 (0x00007f9a34ddb000) + libz.so.1 => /usr/lib/glibc-hwcaps/x86-64-v3/libz.so.1.3 (0x00007f9a34dbb000) + /usr/lib64/ld-linux-x86-64.so.2 (0x00007f9a3520b000) +``` + +We can crucially see that `dwebp` is now loading the `x86-64-v3` built `libwebp.so` lib from `/usr/lib/glibc-hwcaps/x86-64-v3/libwebp.so.7.1.8`, success! Let's what our performance looks like. +``` +$ hyperfine "dwebp ~/3.webp -o /dev/null" +Benchmark 1: dwebp ~/3.webp -o /dev/null + Time (mean ± σ): 198.2 ms ± 1.2 ms [User: 195.4 ms, System: 2.5 ms] + Range (min … max): 197.0 ms … 200.5 ms 14 runs +$ hyperfine "cwebp ~/PNG_Test.png -o /dev/null" +Benchmark 1: cwebp ~/PNG_Test.png -o /dev/null + Time (mean ± σ): 1.313 s ± 0.009 s [User: 1.243 s, System: 0.078 s] + Range (min … max): 1.308 s … 1.341 s 10 runs +``` + +Let's recap so far: + +| Optimization | Decode | Encode | Size | +| ------------ | -------- | ------- | ------- | +| Baseline | 202.2 ms | 1.399 s | 1.33 MB | +| Speed + LTO | 200.0 ms | 1.353 s | 1.73 MB | +| Speed + LTO + PGO | 204.1 ms :warning: | 1.349 s | 1.07 MB | +| Speed + LTO + x86_64-v3 | 198.2 ms | 1.313 s | 3.17 MB | + +Whilst we're still getting an additional speedup it isn't really anything to write home about. A measly ~2% improvement in decoding performance and a fairly respectable ~7% improvement in encoding performance for our test case. However, increasing the package size by an extra ~2MiB from providing a bunch of extra libs in `/usr/lib/glibc-hwcaps/x86-64-v3/` just ain't worth it. This hints that either the compiler optimizations aren't really effective here or we're being bottle-necked by something else. + +So far, we've been benchmarking fairly simply using `hyperfine`, let's swap that out for `perf` so we can get a callgraph. + +## Something about `perf` to the rescue + +`perf record -o dwebp.data -- dwebp ~/3.webp -o /dev/null` + +`perf record -o cwebp.data -- cwebp ~/PNG_Test.png -o /dev/null` + +Let's look at `dwebp` first with `perf report -i dwebp.data`. + +![Perf report dwebp](perf_report_dwebp_png.webp) + +Well god damn, literally all of our time is being spent in `libz.so` it's no wonder our compiler optimizations were hardly improving performance. + +Let's also look at the `cwebp` report, we've generally been getter better results from it. + +![Perf report cwebp](perf_report_cwebp_png.webp) + +Okay, much more of our time is being spent in `libwebp.so` itself here which helps to explain why we were seeing a better performance uplift. Still 5.68% of our time is being spent in `libz`. + +## Choosing Wisely + +You may remember early on, when I said we are also indirectly testing `libpng`. Well... after some more digging, that's exactly what's happening here. Re-running the `dwebp` binary it says this + +> Decodes the WebP image file to PNG format + +Turns out, it's more accurate to say we are _directly_ testing `libpng` and by extension `zlib`. It isn't `libwebp` that's spending all of it's time in `libz.so`, it's `libpng`! This is exactly the reason you have to be careful about the benchmarks chosen and, ensure you understand what they're doing. + +However, the good news about this little snafu is: + 1. `dwebp` can be used to translate to another image format such as `.yuv` that'll more accurately remove the bottleneck from `libz.so`. + 2. We now know that `libpng` has a huge bottleneck in `libz.so` and speeding up `zlib` _should_ dramatically speed up `libpng` performance. + +## Adjusting the Benchmark + +After reverting the `libwebp` package to the baseline let's use our adjusted decoding benchmark. + +We'll now use `dwebp ~/3.webp -yuv -o /dev/null` for a decoding test, let's run that with `perf` to ensure we're exclusively testing `libwebp.so` here. + +![Perf report dwebp to yuv](perf_report_dwebp_yuv.webp) + +Okay that's awesome, no `libpng.so` or `libz.so` to mess with our tests! + +Let's reapply our optimizations, keeping those which apply an uplift + +| Optimization | Decode | Size | +| ------------ | ------------------ | ------- | +| Baseline | 14.7 ms | 1.33 MB | +| Speed | 14.5 ms | 1.56 MB | +| LTO | 14.6 ms | 1.40 MB | +| PGO | 18.0 ms :warning: | 1.07 MB | +| x86-64-v3 | 12.7 ms | 2.35 MB | +| Speed + LTO + x86-64-v3 | 12.3 ms | 3.17 MB | + +Okay, this is great, whilst we aren't getting much from speed or LTO, we are getting a big uplift from x86-64-v3 libraries and when combined with the other optimizations we're getting an uplift in performance of around ~16% at the cost of close to thrice the installed package size. + +### Partial Profiling + +Once again we see that PGO regresses performance hard, however, that smaller size is giving a good hint! We already know that the profiling workload we gave it isn't very comprehensive due to the bunch of `-Wmissing-profile` warnings we get during the optimized build. By default, PGO will aggressively inline and apply additional optimizations to code that's part of the profiling workload with everything else that isn't will be optimized for size. The idea being, hotpath code is fast and code that doesn't matter is small. However, what happens when you can't craft a comprehensive workload such that seems to be the case here? Luckily GCC has a flag for exactly that `-fprofile-partial-training`. GCC docs state that: + +> In some cases it is not practical to train all possible hot paths in the program. (For example, program may contain functions specific for a given hardware and training may not cover all hardware configurations program is run on.) With -fprofile-partial-training profile feedback will be ignored for all functions not executed during the train run leading them to be optimized as if they were compiled without profile feedback. This leads to better performance when train run is not representative but also leads to significantly bigger code. + +Okay, let's try it out, all we need to do is specify in our `package.yml` recipe. + +```yaml +environment: | + if [[ -n ${PGO_USE_BUILD} ]]; then + export CFLAGS="${CFLAGS} -fprofile-partial-training" + export CXXFLAGS="${CXXFLAGS} -fprofile-partial-training" + fi +``` + +And the results: + +| Optimization | Decode | Size | +| ------------ | ------------------ | ------- | +| Speed + LTO + x86-64-v3 | 12.3 ms | 3.17 MB | +| Speed + LTO + x86-64-v3 + Partial PGO | 12.5 ms | 3.13 MB | + +Well, it was worth a try. This highlights how useless PGO can be when you don't or can't provide it a good workload. Interestingly, we don't get the size bloat that was promised, in fact, the opposite. + +# Final libwebp Results + +| Benchmark | Time Before | Time After | Size Before | Size After | +| ------------ | -------- | ------- | ------- | --------- | +| "dwebp ~/3.webp -yuv -o /dev/null" | 14.5 ms | 12.3 ms | 1.33 MB | 3.17 MB | +| "cwebp ~/PNG_Test.png -o /dev/null" | 1.399 s | 1.313 s | -- | -- | + +In the end, we get a very healthy ~16% improvement in decoding from a .webp to .yuv file. As well as a respectable 6% improvement in encoding from a .png to .webp file. However, the increased package size is very unfortunate. It's possible to tweak the x86-64-v3 build and only ship the libs that actually improve performance in order to get the installed size back to an acceptable level. + +# "Next-Generation" Side Quest + +Now, you probably remember earlier due to our unrepresentative benchmark we found out that `libpng` is getting highly bottlenecked by `libz.so`. This now seems like a perfect opportunity to take a look at zlib and circle-back to our original benchmark that we were using. + +Zlib is widely employed throughout the ecosystem and, as such you'd think it would be highly-optimized for performance. However, that isn't really the case. Zlib is written in an old-fashioned way of C and tries to be _extremely_ portable; supporting dozens of systems that have fallen out of common use. As such, it's hard to apply architecture specific optimizations that wouldn't break some old system or without introducing code spaghetti. There have been a couple of attempts to merge AArch64 and x86_64 optimizations into the canonical zlib library without success. + +However, there is some light in this tunnel as various forks of zlib having been popping up, applying new optimizations on top of zlib. The most promising of these looks be to [zlib-ng](https://github.com/zlib-ng/zlib-ng/). When built in compatible mode, it promises to be API compatible with canonical zlib and _tries_ to be as ABI compatible as possible. + +Let's just go for it, replacing Solus' `zlib` package with zlib-ng built in compatible mode. It's a bit scary due to how integral zlib is in a typical Linux install, but, how hard could it be? + +## I Zee a Purty lil' Package + +Well that was simple. Here's what our zlib-ng `package.yml` recipe looks like. + +```yaml +name : zlib +version : 2.1.5 +release : 28 +source : + - https://github.com/zlib-ng/zlib-ng/archive/refs/tags/2.1.5.tar.gz : 3f6576971397b379d4205ae5451ff5a68edf6c103b2f03c4188ed7075fbb5f04 +homepage : https://github.com/zlib-ng/zlib-ng +license : ZLIB +component : system.base +summary : zlib replacement with optimizations for next generation systems. +description: + - A zlib data compression library for the next generation systems. ABI/API compatible mode. +devel : yes +emul32 : yes +setup : | + %cmake_ninja \ + -DZLIB_COMPAT=ON \ + -DWITH_GTEST=OFF \ + -DBUILD_SHARED_LIBS=ON \ + -DINSTALL_LIB_DIR=%libdir% +build : | + %ninja_build +install : | + %ninja_install +check : | + %ninja_check +``` + +After building it, all the files seem to be in the right place and the test suite is passing. Let's just install it overwriting our canonical `zlib` package and hope our system doesn't die... I think the word is YOLO. + +``` +$ hyperfine "dwebp ~/3.webp -o /dev/null" +Benchmark 1: dwebp ~/3.webp -o /dev/null + Time (mean ± σ): 198.6 ms ± 2.3 ms [User: 194.3 ms, System: 3.6 ms] + Range (min … max): 196.3 ms … 203.3 ms 14 runs +$ sudo eopkg it zlib-2.1.5-28-1-x86_64.eopkg +... +$ $ hyperfine "dwebp ~/3.webp -o /dev/null" +Benchmark 1: dwebp ~/3.webp -o /dev/null + Time (mean ± σ): 87.6 ms ± 0.7 ms [User: 84.7 ms, System: 2.6 ms] + Range (min … max): 86.5 ms … 88.7 ms 33 runs +``` + +Well, hot diggity damn. Swapping out the zlib package for a more performant variant has instantly more than halved(!!) our decoding time. + +We need to find a more contained `libpng` benchmark here that removes the `libwebp` stuff to really confirm the findings here. After some sleuthing the `libpng` source repository has a [pngtopng.c](https://github.com/glennrp/libpng/blob/libpng16/contrib/examples/pngtopng.c) file we can compile to use the system libpng library. + +Changing the header from `#include "../../png.h"` to `#include ` then running `gcc -Ofast pngtopng.c -lpng16 -o pngtopng` to compile it, we have a libpng benchmark. We can reuse our test .png file from earlier. Ending up with: `./pngtopng ~/PNG_Test.png /dev/null` for our benchmark. + +| Library | Time | +| ---------------- | -------- | +| zlib (canonical) | 1.464 s | +| zlib-ng (compat) | 896.6 ms | + +Well. This is pretty much inline with our flawed `dwebp` benchmark from earlier. Swapping out zlib almost halves `libpng` decoding time. + +## Squeezing more from zlib-ng + +However, we're not done yet. We still have our compiler optimizations available to us to squeeze more performance from `zlib-ng`. + +| Optimization | Decode | Size | +| ------------ | ------------------ | --------- | +| Baseline | 896.6 ms | 141.00 KB | +| Speed | 883.6 ms | 182.00 KB | +| LTO | 892.7 ms | 133.00 KB | +| PGO | 894.6 ms | 141.00 KB | +| x86-64-v3 | 892.5 ms | 295.00 KB | +| Speed + LTO | 882.6 ms | 170.00 KB | +| Speed + LTO + PGO + x86-64-v3 | 882.5 ms | 250.00 KB | + +It looks like in this case the simple speed + LTO optimizations is the way to go. Speed gives the majority of the speedup but LTO helps bring back down the package size again. However, it's only a 1.5% improvement from baseline for this benchmark. We can always rebenchmark it later, testing zlib performance more directly instead of via libpng. It shows how good job the zlib-ng developers have done that it's so performant right out of the gate. + +# Final Words + +We've shown the process of how a package can be optimized in Solus, through the failings and wins here I hope some good tips and tricks were provided in avoiding common pitfuls. Additional benchmarking strategies such as BOLT or Polly optimizations were not discussed and it'll be good material for a future blog post. + +Some other important things such as tweaking the system for benchmarking in order to get representative and consistent results were also not discussed. This is especially important in power budget constrained systems such as laptops and worth bearing in mind. + +Regardless, I hope the story of how `libwebp` was optimized for was entertaining and some things were learnt for anyone looking to optimize packages in Solus for the future. diff --git a/devlog/perf_report_cwebp_png.webp b/devlog/perf_report_cwebp_png.webp new file mode 100644 index 0000000000000000000000000000000000000000..0176a0608e3d600e1efb5bb7ae957a7e6b75eb2c GIT binary patch literal 84504 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

+r~|!nXjzLGEXLSmhSA&#(fYXuK1FNF4>PYI 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

-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 literal 0 HcmV?d00001 From 047aa757da349b217b62c067812d78dc3f8d1f71 Mon Sep 17 00:00:00 2001 From: David Harder Date: Fri, 9 Feb 2024 20:25:30 -0600 Subject: [PATCH 2/3] Spelling + Staudey review --- .cspell-allowed-words.txt | 20 +++ ...9-Intro-to-optimizing-packages-on-solus.md | 117 ++++++++++-------- 2 files changed, 84 insertions(+), 53 deletions(-) diff --git a/.cspell-allowed-words.txt b/.cspell-allowed-words.txt index 6b37158b0..cd47a8ea8 100644 --- a/.cspell-allowed-words.txt +++ b/.cspell-allowed-words.txt @@ -26,6 +26,7 @@ bootctl bootloader bootup bopomofo +bottlenecked brasero brlaser brsaneconfig @@ -49,11 +50,13 @@ chsh cifs clion cmdline +compat configfile confopts cpesearch cran cryptsetup +cwebp cxxflags cython datacenter @@ -75,6 +78,7 @@ droidcam dtags dumpall dumpcap +dwebp dymo efibootmgr emul @@ -100,6 +104,7 @@ flicky flto fluidsynth fpath +fprofile freedesktop funroll gamepad @@ -107,6 +112,7 @@ gconf geoclue getsol getsolus +giflib gobject goroot gotopkg @@ -121,6 +127,7 @@ headerbar homeserver hostnames hplip +hwcaps hyphenator ibetical ibus @@ -176,15 +183,20 @@ libideviceactivation libimobiledevice libinput libjpeg +libsharpyuv libspeex libspeexdsp libsplit libssh libstdc libsuffix +libturbojpeg libudev libuiohook libwebp +libwebpdecoder +libwebpdemux +libwebpmux lifebook livingsilver localrepo @@ -245,6 +257,7 @@ pkgfiles pkgname plasmashell plexmediaserver +pngtopng poettering pomo pomodoneapp @@ -318,6 +331,7 @@ soundfont soundfonts spideroak squashfs +ssim statuslines subpackages sunvox @@ -361,12 +375,17 @@ voikko vostro vpcec vulkan +vwebp +webp +webpinfo +webpmux webstorm whatprovides whatuses winbind winbindoptions wireshark +wmissing workdir wsdd wxwidgets @@ -379,6 +398,7 @@ xrdp xstartup xwrapper yjobs +yolo yourgithubaccount ypkg zcat diff --git a/devlog/2024-02-09-Intro-to-optimizing-packages-on-solus.md b/devlog/2024-02-09-Intro-to-optimizing-packages-on-solus.md index e6d7fea06..c37193b5b 100644 --- a/devlog/2024-02-09-Intro-to-optimizing-packages-on-solus.md +++ b/devlog/2024-02-09-Intro-to-optimizing-packages-on-solus.md @@ -1,6 +1,6 @@ --- title: Intro to Optimizing Packages on Solus -description: Explore how to employ advanced compiler techniques such as PGO, BOLT & Glibc HWCaps to squeeze extra performance from packages using libwebp as a test vehcile +description: Explore how to employ advanced compiler techniques such as PGO, BOLT & Glibc HWCaps to squeeze extra performance from packages using libwebp as a test vehicle slug: solus-optimizing-packages authors: - name: Joey Riches @@ -19,30 +19,32 @@ We'll explore how to build packages with advanced compiler techniques in order t Linux distributions have a lot of control over how a source-based package gets compiled and shipped to users as part of a binary repository. Aggressive and advanced compiler optimization techniques, as well as other methods can be used to provide greater out of the box performance for end users. This can greatly benefit users running on older hardware to provide a snappier end-user experience; reducing time waiting on a heavy workload to finish; or even improved battery life; amongst other improvements. -Part of the problem is, a packager's time is limited. So how, as a distribution, do you choose to try provide faster compatible packages for a end user. A historic approach is to simply change the default compiler flags for _all_ packages, such as enabling [LTO](https://en.wikipedia.org/wiki/Interprocedural_optimization) by default. Whilst this approach can work well, at Solus the philosophy is slightly different where a packager can trivially enable several advanced compiler optimization techniques such as [PGO](https://en.wikipedia.org/wiki/Profile-guided_optimization) without too much faffing around on a _targeted_ package. +Part of the problem is, a packager's time is limited. So how, as a distribution, do you choose to try provide faster compatible packages for an end user. A historic approach is to simply change the default compiler flags for _all_ packages, such as enabling [LTO](https://en.wikipedia.org/wiki/Interprocedural_optimization) by default. Whilst this approach can work well, at Solus the philosophy is slightly different where a packager can trivially enable several advanced compiler optimization techniques such as [PGO](https://en.wikipedia.org/wiki/Profile-guided_optimization) without too much faffing around on a _targeted_ package. The benefits of such an approach are: - - Can target the performance of a specific package to benefit _all_ users - - A compiler optimization may improve one package, but may not apply globally to all packages. + +- Can target the performance of a specific package to benefit _all_ users +- A compiler optimization may improve one package, but may not apply globally to all packages. The downsides are such: - - Requires additional packager time to benchmark and experiment with different optimization strategies. - - Requires the packager to _choose_ and invest time into improving performance of a package. - - Requires the packager to find an appropriate benchmark to test the package against. - - Experimenting with compiler optimizations may not bear fruit: no meaningful improvement in performance, or there may be some other bottleneck. + +- Requires additional packager time to benchmark and experiment with different optimization strategies. +- Requires the packager to _choose_ and invest time into improving performance of a package. +- Requires the packager to find an appropriate benchmark to test the package against. +- Experimenting with compiler optimizations may not bear fruit: no meaningful improvement in performance, or there may be some other bottleneck. # Optimization Techniques Available - speed: - - As simple as it gets really, build a package with `-O3` instead of `-O2` as well as any other flags deemed worthy to be included as part of the `speed` flags. The main drawback of this is that `-O3` is not guaranteed to produce faster results than building with `-O2` and typically will produce bigger binaries. The days of `-O3` outright breaking your program in weird unexpected ways is largely behind us. + - As simple as it gets really, build a package with `-O3` instead of `-O2` as well as any other flags deemed worthy to be included as part of the `speed` flags. The main drawback of this is that `-O3` is not guaranteed to produce faster results than building with `-O2` and typically will produce bigger binaries. The days of `-O3` outright breaking your program in weird unexpected ways is largely behind us. - LTO: - - Compared to some other distributions `-flto` is not yet enabled by default on Solus. LTO is almost guaranteed to provide a %1 or slightly larger performance improvement as well as a smaller binary at the cost of increased compiling times and memory usage during build. When combined with other optimization techniques such as PGO the LTO optimization can really stretch it's legs and provide even greater uplift! + - Compared to some other distributions `-flto` is not yet enabled by default on Solus. LTO is almost guaranteed to provide a %1 or slightly larger performance improvement as well as a smaller binary at the cost of increased compiling times and memory usage during build. When combined with other optimization techniques such as PGO the LTO optimization can really stretch its legs and provide even greater uplift! - Clang: - - Not strictly an optimization, but, building a package with `clang` instead of `gcc` and `ld.ldd` to link instead of the infamous `ld.bfd` may provide a faster package out of the box. You'll have to be careful of subtle ABI differences if building with `clang`. If in doubt, and, `clang` is the obvious choice, perform safety rebuilds on all reverse dependencies of the package. + - Not strictly an optimization, but, building a package with `clang` instead of `gcc` and `ld.ldd` to link instead of the infamous `ld.bfd` may provide a faster package out of the box. You'll have to be careful of subtle ABI differences if building with `clang`. If in doubt, and, `clang` is the obvious choice, perform safety rebuilds on all reverse dependencies of the package. - PGO: - - Profile guided optimization. Build once with instrumentation in order to collect profile data when ran. Run the program using a representative workload in order to collect profiling data. Build the program again with the profiling data provided in order to build an optimized variant. + - Profile guided optimization. Build once with instrumentation in order to collect profile data when ran. Run the program using a representative workload in order to collect profiling data. Build the program again with the profiling data provided in order to build an optimized variant. - BOLT: - - Binary optimization and layout tool. You can think of this as "post-link PGO" where you instrument a binary with `bolt` to collect profiling data. Run that binary. Then finally reorganize the binary layout using the collected profile data. This generally works better on large statically linked binaries but smaller binaries or libraries such as found in a typical package can benefit too. This optimization is still quite new. + - Binary optimization and layout tool. You can think of this as "post-link PGO" where you instrument a binary with `bolt` to collect profiling data. Run that binary. Then finally reorganize the binary layout using the collected profile data. This generally works better on large statically linked binaries but smaller binaries or libraries such as found in a typical package can benefit too. This optimization is still quite new. Regardless, that's enough word spaghetti, let's look at the process to actually optimize a package. @@ -84,7 +86,7 @@ install : | %make_install ``` -Okay, looks to a quite simple affair. A simple configure, make, make install as well as `emul32` being enabled specifying the -32bit packages are also provided from this recipe. Next step is to look for a repeatable and easy way to benchmark it. We'll begin by looking at the `pspec_x86_64.xml` file which lists all the files produced from the `package.yml` recipe as well as some metadata. +Okay, looks to be a quite simple affair. A simple configure, make, make install as well as `emul32` being enabled specifying the -32bit packages are also provided from this recipe. Next step is to look for a repeatable and easy way to benchmark it. We'll begin by looking at the `pspec_x86_64.xml` file which lists all the files produced from the `package.yml` recipe as well as some metadata. ```xml libwebp @@ -164,6 +166,7 @@ optimize: ``` Moment of truth... + ``` $ hyperfine "dwebp ~/3.webp -o /dev/null" Benchmark 1: dwebp ~/3.webp -o /dev/null @@ -179,7 +182,7 @@ Well okay, we got a very minor uplift in decoding performance and a slightly hig ## PGO is great, except, when it isn't. -Next step is to explore PGO (Profile Guided Optimization). For our `libwebp` package, looks like we already hit a bit of a snafu. There's no testsuite included in the tarball! That's a bit of a disappointment as a testsuite such as `make check` is by far and away the easiest and most comprehensive workload that can be used for profiling as part of PGO, especially for smaller libraries. However, we can still experiment with the just built `dwebp` and `cwebp` binaries as a suitable workload for PGO. +Next step is to explore PGO (Profile Guided Optimization). For our `libwebp` package, looks like we already hit a bit of a snafu. There's no test suite included in the tarball! That's a bit of a disappointment as a test suite such as `make check` is by far and away the easiest and most comprehensive workload that can be used for profiling as part of PGO, especially for smaller libraries. However, we can still experiment with the just built `dwebp` and `cwebp` binaries as a suitable workload for PGO. Luckily, as part of the package.yml format all you have to do is provide a profile for automatic PGO. After chrooting into the build environment and fiddling around a bit we end up with: @@ -191,6 +194,7 @@ profile : | ``` After specifying that, 6 builds will now be performed instead of 2: + - emul32: - Instrumented build - Run profiling workload @@ -203,6 +207,7 @@ After specifying that, 6 builds will now be performed instead of 2: For this relatively small package it increases the build time from 1m1.672s to 1m42.199s The next moment of truth... + ``` $ hyperfine "dwebp ~/3.webp -o /dev/null" Benchmark 1: dwebp ~/3.webp -o /dev/null @@ -214,13 +219,13 @@ Benchmark 1: cwebp ~/PNG_Test.png -o /dev/null Range (min … max): 1.335 s … 1.374 s 10 runs ``` -Well... That's interesting. We actually regress in performance for decode performance whilst gaining another small bump in encoding performance. Worst still, we get a bunch of `profile count data file not found [-Wmissing-profile]` warning messages during the optimized build indicating to us our profiling workload isn't comprehensive enough and doesn't cover enough code paths. The lack of a handy `make check` that could be used as a profiling workload is really hurting us here. For now, let's put in a pin in exploring PGO, it isn't a dead end but more work needs to be done curating a more comprehensive workload to chuck at it in this particular case, whilst other, easier, optimization techniques are still available to us. +Well... That's interesting. We actually regress in performance for decode performance whilst gaining another small bump in encoding performance. Worse still, we get a bunch of `profile count data file not found [-Wmissing-profile]` warning messages during the optimized build indicating to us our profiling workload isn't comprehensive enough and doesn't cover enough code paths. The lack of a handy `make check` that could be used as a profiling workload is really hurting us here. For now, let's put a pin in exploring PGO, it isn't a dead end but more work needs to be done curating a more comprehensive workload to chuck at it in this particular case, whilst other, easier, optimization techniques are still available to us. ## 256 Vector Units go brrrrrr... -The next obvious step is to explore `glibc` hardware capabilities. For those unaware both `clang` and `gnu` compilers provide `x86_64-v2`, `x86_64-v3` and `x86_64-v4` miroarchitechure build options on top of the baseline of `x86_64`. These enable the use of targeting additional CPU instruction sets during compilation for better performance. For example, `-sse4.2` for `x86_64-v2`, `-avx2` for `x86_64-v3`, and `-avx512` for `x86_64-v4`. +The next obvious step is to explore `glibc` hardware capabilities. For those unaware both `clang` and `gnu` compilers provide `x86_64-v2`, `x86_64-v3` and `x86_64-v4` micro-architecture build options on top of the baseline of `x86_64`. These enable the use of targeting additional CPU instruction sets during compilation for better performance. For example, `-sse4.2` for `x86_64-v2`, `-avx2` for `x86_64-v3`, and `-avx512` for `x86_64-v4`. -Whilst that's great 'n all, if a program is built with `x86_64-v3` and gains an additional ~10% uplift in performance, it's no good if a `x86_64-v2` compatible cpu can't run it. Luckily the `glibc` loader that's found on almost general purpose linux installs provides a way to load higher or lower microarchitecture libraries if they're installed and supported. +Whilst that's great 'n all, if a program is built with `x86_64-v3` and gains an additional ~10% uplift in performance, it's no good if a `x86_64-v2` compatible cpu can't run it. Luckily the `glibc` loader that's found on almost general purpose linux installs provides a way to load higher or lower micro-architecture libraries if they're installed and supported. On top of all that, the `package.yml` format provides an incredibly simple way of providing `x86_64-v3` built libraries by enabling the `avx2 : yes` flag. @@ -231,6 +236,7 @@ With `avx2 : yes` enabled in the `libwebp` package three builds are performed. - x86_64 We now see these additional files in the `pspec_x86_64.xml` file + ```diff + /usr/lib64/glibc-hwcaps/x86-64-v3/libsharpyuv.so.0 + /usr/lib64/glibc-hwcaps/x86-64-v3/libsharpyuv.so.0.0.1 @@ -245,6 +251,7 @@ We now see these additional files in the `pspec_x86_64.xml` file ``` Let's rerun `lld` on `dwebp` after installing the new package and... + ``` $ ldd /usr/bin/dwebp linux-vdso.so.1 (0x00007ffeab5b1000) @@ -259,6 +266,7 @@ $ ldd /usr/bin/dwebp ``` We can crucially see that `dwebp` is now loading the `x86-64-v3` built `libwebp.so` lib from `/usr/lib/glibc-hwcaps/x86-64-v3/libwebp.so.7.1.8`, success! Let's what our performance looks like. + ``` $ hyperfine "dwebp ~/3.webp -o /dev/null" Benchmark 1: dwebp ~/3.webp -o /dev/null @@ -273,7 +281,7 @@ Benchmark 1: cwebp ~/PNG_Test.png -o /dev/null Let's recap so far: | Optimization | Decode | Encode | Size | -| ------------ | -------- | ------- | ------- | +| ----------------------- | ------------------ | ------- | ------- | | Baseline | 202.2 ms | 1.399 s | 1.33 MB | | Speed + LTO | 200.0 ms | 1.353 s | 1.73 MB | | Speed + LTO + PGO | 204.1 ms :warning: | 1.349 s | 1.07 MB | @@ -293,9 +301,9 @@ Let's look at `dwebp` first with `perf report -i dwebp.data`. ![Perf report dwebp](perf_report_dwebp_png.webp) -Well god damn, literally all of our time is being spent in `libz.so` it's no wonder our compiler optimizations were hardly improving performance. +Well god damn, literally all of our time is being spent in `libz.so` it's no wonder our compiler optimizations were hardly improving performance. -Let's also look at the `cwebp` report, we've generally been getter better results from it. +Let's also look at the `cwebp` report, we've generally been getting better results from it. ![Perf report cwebp](perf_report_cwebp_png.webp) @@ -307,11 +315,12 @@ You may remember early on, when I said we are also indirectly testing `libpng`. > Decodes the WebP image file to PNG format -Turns out, it's more accurate to say we are _directly_ testing `libpng` and by extension `zlib`. It isn't `libwebp` that's spending all of it's time in `libz.so`, it's `libpng`! This is exactly the reason you have to be careful about the benchmarks chosen and, ensure you understand what they're doing. +Turns out, it's more accurate to say we are _directly_ testing `libpng` and by extension `zlib`. It isn't `libwebp` that's spending all of its time in `libz.so`, it's `libpng`! This is exactly the reason you have to be careful about the benchmarks chosen and, ensure you understand what they're doing. However, the good news about this little snafu is: - 1. `dwebp` can be used to translate to another image format such as `.yuv` that'll more accurately remove the bottleneck from `libz.so`. - 2. We now know that `libpng` has a huge bottleneck in `libz.so` and speeding up `zlib` _should_ dramatically speed up `libpng` performance. + +1. `dwebp` can be used to translate to another image format such as `.yuv` that'll more accurately remove the bottleneck from `libz.so`. +2. We now know that `libpng` has a huge bottleneck in `libz.so` and speeding up `zlib` _should_ dramatically speed up `libpng` performance. ## Adjusting the Benchmark @@ -325,24 +334,25 @@ Okay that's awesome, no `libpng.so` or `libz.so` to mess with our tests! Let's reapply our optimizations, keeping those which apply an uplift -| Optimization | Decode | Size | -| ------------ | ------------------ | ------- | -| Baseline | 14.7 ms | 1.33 MB | -| Speed | 14.5 ms | 1.56 MB | -| LTO | 14.6 ms | 1.40 MB | -| PGO | 18.0 ms :warning: | 1.07 MB | -| x86-64-v3 | 12.7 ms | 2.35 MB | -| Speed + LTO + x86-64-v3 | 12.3 ms | 3.17 MB | +| Optimization | Decode | Size | +| ----------------------- | ----------------- | ------- | +| Baseline | 14.7 ms | 1.33 MB | +| Speed | 14.5 ms | 1.56 MB | +| LTO | 14.6 ms | 1.40 MB | +| PGO | 18.0 ms :warning: | 1.07 MB | +| x86-64-v3 | 12.7 ms | 2.35 MB | +| Speed + LTO + x86-64-v3 | 12.3 ms | 3.17 MB | Okay, this is great, whilst we aren't getting much from speed or LTO, we are getting a big uplift from x86-64-v3 libraries and when combined with the other optimizations we're getting an uplift in performance of around ~16% at the cost of close to thrice the installed package size. ### Partial Profiling -Once again we see that PGO regresses performance hard, however, that smaller size is giving a good hint! We already know that the profiling workload we gave it isn't very comprehensive due to the bunch of `-Wmissing-profile` warnings we get during the optimized build. By default, PGO will aggressively inline and apply additional optimizations to code that's part of the profiling workload with everything else that isn't will be optimized for size. The idea being, hotpath code is fast and code that doesn't matter is small. However, what happens when you can't craft a comprehensive workload such that seems to be the case here? Luckily GCC has a flag for exactly that `-fprofile-partial-training`. GCC docs state that: +Once again we see that PGO regresses performance hard, however, that smaller size is giving a good hint! We already know that the profiling workload we gave it isn't very comprehensive due to the bunch of `-Wmissing-profile` warnings we get during the optimized build. By default, PGO will aggressively inline and apply additional optimizations to code that's part of the profiling workload while everything else will be optimized for size. The idea being, hot-path code is fast and code that doesn't matter is small. However, what happens when you can't craft a comprehensive workload, as seems to be the case here? Luckily GCC has a flag for exactly that `-fprofile-partial-training`. GCC docs state that: -> In some cases it is not practical to train all possible hot paths in the program. (For example, program may contain functions specific for a given hardware and training may not cover all hardware configurations program is run on.) With -fprofile-partial-training profile feedback will be ignored for all functions not executed during the train run leading them to be optimized as if they were compiled without profile feedback. This leads to better performance when train run is not representative but also leads to significantly bigger code. +> In some cases it is not practical to train all possible hot paths in the program. (For example, program may contain functions specific for a given hardware and training may not cover all hardware configurations program is run on.) With -fprofile-partial-training profile feedback will be ignored for all functions not executed during the train run leading them to be optimized as if they were compiled without profile feedback. This leads to better performance when train run is not representative but also leads to significantly bigger code. Okay, let's try it out, all we need to do is specify in our `package.yml` recipe. + ```yaml environment: | @@ -354,19 +364,19 @@ environment: | And the results: -| Optimization | Decode | Size | -| ------------ | ------------------ | ------- | -| Speed + LTO + x86-64-v3 | 12.3 ms | 3.17 MB | -| Speed + LTO + x86-64-v3 + Partial PGO | 12.5 ms | 3.13 MB | +| Optimization | Decode | Size | +| ------------------------------------- | ------- | ------- | +| Speed + LTO + x86-64-v3 | 12.3 ms | 3.17 MB | +| Speed + LTO + x86-64-v3 + Partial PGO | 12.5 ms | 3.13 MB | Well, it was worth a try. This highlights how useless PGO can be when you don't or can't provide it a good workload. Interestingly, we don't get the size bloat that was promised, in fact, the opposite. # Final libwebp Results -| Benchmark | Time Before | Time After | Size Before | Size After | -| ------------ | -------- | ------- | ------- | --------- | -| "dwebp ~/3.webp -yuv -o /dev/null" | 14.5 ms | 12.3 ms | 1.33 MB | 3.17 MB | -| "cwebp ~/PNG_Test.png -o /dev/null" | 1.399 s | 1.313 s | -- | -- | +| Benchmark | Time Before | Time After | Size Before | Size After | +| ----------------------------------- | ----------- | ---------- | ----------- | ---------- | +| "dwebp ~/3.webp -yuv -o /dev/null" | 14.5 ms | 12.3 ms | 1.33 MB | 3.17 MB | +| "cwebp ~/PNG_Test.png -o /dev/null" | 1.399 s | 1.313 s | -- | -- | In the end, we get a very healthy ~16% improvement in decoding from a .webp to .yuv file. As well as a respectable 6% improvement in encoding from a .png to .webp file. However, the increased package size is very unfortunate. It's possible to tweak the x86-64-v3 build and only ship the libs that actually improve performance in order to get the installed size back to an acceptable level. @@ -383,6 +393,7 @@ Let's just go for it, replacing Solus' `zlib` package with zlib-ng built in comp ## I Zee a Purty lil' Package Well that was simple. Here's what our zlib-ng `package.yml` recipe looks like. + ```yaml name : zlib @@ -444,21 +455,21 @@ Well. This is pretty much inline with our flawed `dwebp` benchmark from earlier. However, we're not done yet. We still have our compiler optimizations available to us to squeeze more performance from `zlib-ng`. -| Optimization | Decode | Size | -| ------------ | ------------------ | --------- | -| Baseline | 896.6 ms | 141.00 KB | -| Speed | 883.6 ms | 182.00 KB | -| LTO | 892.7 ms | 133.00 KB | -| PGO | 894.6 ms | 141.00 KB | -| x86-64-v3 | 892.5 ms | 295.00 KB | -| Speed + LTO | 882.6 ms | 170.00 KB | -| Speed + LTO + PGO + x86-64-v3 | 882.5 ms | 250.00 KB | +| Optimization | Decode | Size | +| ----------------------------- | -------- | --------- | +| Baseline | 896.6 ms | 141.00 KB | +| Speed | 883.6 ms | 182.00 KB | +| LTO | 892.7 ms | 133.00 KB | +| PGO | 894.6 ms | 141.00 KB | +| x86-64-v3 | 892.5 ms | 295.00 KB | +| Speed + LTO | 882.6 ms | 170.00 KB | +| Speed + LTO + PGO + x86-64-v3 | 882.5 ms | 250.00 KB | -It looks like in this case the simple speed + LTO optimizations is the way to go. Speed gives the majority of the speedup but LTO helps bring back down the package size again. However, it's only a 1.5% improvement from baseline for this benchmark. We can always rebenchmark it later, testing zlib performance more directly instead of via libpng. It shows how good job the zlib-ng developers have done that it's so performant right out of the gate. +It looks like in this case the simple speed + LTO optimizations is the way to go. Speed gives the majority of the speedup but LTO helps bring back down the package size again. However, it's only a 1.5% improvement from baseline for this benchmark. We can always re-benchmark it later, testing zlib performance more directly instead of via libpng. It shows how good a job the zlib-ng developers have done that it's so performant right out of the gate. # Final Words -We've shown the process of how a package can be optimized in Solus, through the failings and wins here I hope some good tips and tricks were provided in avoiding common pitfuls. Additional benchmarking strategies such as BOLT or Polly optimizations were not discussed and it'll be good material for a future blog post. +We've shown the process of how a package can be optimized in Solus, through the failings and wins here I hope some good tips and tricks were provided in avoiding common pitfalls. Additional benchmarking strategies such as BOLT or Polly optimizations were not discussed and it'll be good material for a future blog post. Some other important things such as tweaking the system for benchmarking in order to get representative and consistent results were also not discussed. This is especially important in power budget constrained systems such as laptops and worth bearing in mind. From 63c2eeb48e90e5df1bd5f107d577a39180b1881e Mon Sep 17 00:00:00 2001 From: Joey Riches Date: Sat, 10 Feb 2024 12:44:53 +0000 Subject: [PATCH 3/3] Use proper spanish innit --- devlog/2024-02-09-Intro-to-optimizing-packages-on-solus.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devlog/2024-02-09-Intro-to-optimizing-packages-on-solus.md b/devlog/2024-02-09-Intro-to-optimizing-packages-on-solus.md index c37193b5b..d62784a24 100644 --- a/devlog/2024-02-09-Intro-to-optimizing-packages-on-solus.md +++ b/devlog/2024-02-09-Intro-to-optimizing-packages-on-solus.md @@ -15,7 +15,7 @@ We'll explore how to build packages with advanced compiler techniques in order t -# Por Qué la Cauza +# Cual es la causa Linux distributions have a lot of control over how a source-based package gets compiled and shipped to users as part of a binary repository. Aggressive and advanced compiler optimization techniques, as well as other methods can be used to provide greater out of the box performance for end users. This can greatly benefit users running on older hardware to provide a snappier end-user experience; reducing time waiting on a heavy workload to finish; or even improved battery life; amongst other improvements.