Bug 1779060
Summary: | gmp is compiled without CPU optimizations enabled | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Nikos Mavrogiannopoulos <nmavrogi> |
Component: | gmp | Assignee: | Jakub Martisko <jamartis> |
Status: | CLOSED RAWHIDE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | unspecified | Docs Contact: | |
Priority: | unspecified | ||
Version: | rawhide | CC: | deekej, frantisek.kluknavsky, jamartis, ssorce |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | If docs needed, set a value | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2019-12-03 09:40:10 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | |||
Bug Blocks: | 1779057 |
Description
Nikos Mavrogiannopoulos
2019-12-03 07:53:41 UTC
Should be fixed in rawhide: https://koji.fedoraproject.org/koji/taskinfo?taskID=39420536 Did you measure any significant benefit? On my x86-64 if I compile the same source code locally I get: rsa 2048 1.5079 53.4444 rsa (openssl) 2048 1.8138 61.0715 while, the fedora code after the --enable-fat is significantly slower: rsa 2048 1.1020 41.3436 rsa (openssl) 2048 1.8138 61.0715 You can verify the benchmark by compiling https://gitlab.com/gnutls/nettle and running $ examples/hogweed-test rsa I've tried the benchmark with the original version, the rawhide version and [1] (this should be the last version before the --enable-fat was removed) and I'm getting: rsa 2048 1.2620 45.5201 rsa 2048 1.1557 43.8995 rsa 2048 1.1458 43.8338 respectively [1]: https://koji.fedoraproject.org/koji/buildinfo?buildID=843681 The values are from running examples/hogweed-benchmark from the gitlab repo from comment#3 When compiling locally I see that the flags used by gmp are: -mtune=skylake -march=broadwell -fomit-frame-pointer while fedora sets: -mtune=generic Adding -fomit-frame-pointer does not give much, so it seems that the mtune and march give a very big boost in my case. Not sure what we can do to take advantage of that :( Nikos, we should consult with someone in glibc/dev tool on techniques to enable different code paths on different architectures. I know it is possible to do at runtime (like enabling AVX2 when available and falling back to SSSE3 when not and similar), but it may require significant engineering around GMP to do that. |