| 22 Aug 2024 |
emily | cf. https://github.com/NixOS/nixpkgs/pull/336564 | 15:54:16 |
Alyssa Ross | PGO can be reproducible, and if so there's not a problem. | 15:57:35 |
Alyssa Ross | But in most cases it's not. | 15:57:43 |
raboof | Ideally not indeed - indeed I've heard rumours of reproducible PGO builds, but that's probably only if you specifically work towards that, and even then I'm sceptical 😄 | 15:58:03 |
emily | In reply to @qyliss:fairydust.space PGO can be reproducible, and if so there's not a problem. by having someone record a profile and shipping that as an input, right? | 15:58:05 |
emily | or is there another way? | 15:58:08 |
Alyssa Ross | By having the thing you run to profile be deterministic | 15:58:22 |
Alyssa Ross | which mostly means single threaded | 15:58:27 |
emily | I see | 15:58:29 |
emily | that sounds hard | 15:58:31 |
Alyssa Ross | our foot pgo is reproducible | 15:58:33 |
Alyssa Ross | But there's also an option for more complete foot PGO, which we don't use, that is not reproducible. | 15:58:52 |
emily | just run all our PGO profiling on Antithesis 🙃 | 15:58:56 |
emily | In reply to @emilazy:matrix.org by having someone record a profile and shipping that as an input, right? this does work though, right? it seems like a benign kind of blob to me since the optimization decisions "shouldn't" affect the actual behaviour of the program (and because you can always reproduce an ~equivalent blob, a la bootstrap tarballs) | 15:59:47 |
emily | I think Firefox PGO works like that or something? | 15:59:55 |
Alyssa Ross | I don't think it's benign at all. | 16:00:11 |
Alyssa Ross | It's not auditable to my knowledge, and compilers are not generally written to be secure against malicious input. | 16:00:45 |