| 25 May 2021 |
baloo | (I stopped using venv since nix) | 23:21:35 |
andi- | Anyway, determinism > speed for now :-) | 23:22:10 |
baloo | yeah that's nice. I'd like to debug for the gcc build | 23:30:54 |
baloo | but I need to step through the different phases and compare the intermediate results | 23:31:15 |
baloo | the non-reproducibility there does not make much sense to me | 23:31:52 |
andi- | oh, GCC is still not reproducible? I thought we got that one covered. | 23:32:32 |
baloo | it is now | 23:32:41 |
baloo | but it's 8-12% slower | 23:32:49 |
andi- | would be worse if the build results were slower now | 23:33:08 |
baloo | the build results are the same | 23:33:38 |
baloo | but getting there is slower | 23:33:46 |
baloo | the gcc build measures the compilation of gcc itself to determine hotpaths | 23:34:27 |
baloo | and feeds that to the compilation to reorder the output assembly | 23:34:43 |
andi- | is that different from their PGO? | 23:46:19 |
baloo | that's the pgo | 23:47:45 |
baloo | and I can't understand why it's not reproducible | 23:47:58 |
andi- | For the python PGO stuff I spotted a few time.time() calls which might make the profile output depend on the current time. Sometimes you might have more odd seconds or whatever which might slightly affect the formatting code or what not | 23:48:54 |
baloo | huum | 23:49:33 |
baloo | thing is | 23:49:35 |
baloo | it's reproducible on the same machine | 23:49:43 |
@grahamc:nixos.org | let's patch the kernel to only ever say it is 1 second past the epoch. always. | 23:49:51 |
baloo | but going from amd zen1 to zen3 breaks it | 23:49:56 |
andi- | Are they counting how long an instruction takes? | 23:50:27 |
andi- | And then try different versions of the same code? | 23:50:41 |
baloo | well ... looks like it, but the thing is: the documentation and the developers says no | 23:51:00 |
baloo | there is a specific build profile to get machine-optimized code | 23:51:25 |
baloo | and this is not the one we had | 23:51:33 |
baloo | (machine-optimized is based off perf) | 23:51:53 |
andi- | What profiles are there and can we maybe just specify one that is empty/trivial to reason about? | 23:52:11 |
andi- | Something like a no-op profile to figure out if that is reproducible | 23:52:43 |