-
Notifications
You must be signed in to change notification settings - Fork 552
Description
System information
- SolveSpace version: 3.0~3dd2fc00
- Operating system: Fedora 34 Beta
- CPU: Ryzen 2400G 4core / 8threads - system Mellori ITX
- RAM: 16GB but SolveSpace only uses about 300MB
CMAKE options:
(option 0 is always enabled)
- -DCMAKE_BUILD_TYPE=RelWithDebInfo
- -DENABLE_OPENMP=yes
- -DENABLE_LTO=yes
- -DCMAKE_CXX_FLAGS=-march=x86-64-v3
| OMP | LTO | 64v3 | TIME (s) |
|---|---|---|---|
| 21.077 | |||
| [x] | 21.550 | ||
| [x] | 18.080 | ||
| [x] | [x] | 18.271 | |
| [x] | 6.371 | ||
| [x] | [x] | 6.552 | |
| [x] | [x] | 5.751 5.468 | |
| [x] | [x] | [x] | 5.498 5.536 |
Procedure was to open perf.slvs then change the number of repeats in the last group from 4 to 40 and record the time for the last Generate::Dirty. Do this 3 times for each set of build options and take the average of the 3. The last two options I did 3 runs twice because they were close and after the first run this was the only time x86-64-v3 was better than without it. The second set of numbers is more consistent with the others, as is the average of all 6 runs.
perf.zip
Conclusion:
The biggest improvement by far is to enable OpenMP. An additional speedup is available with LTO but will increase your build time. Using x86-64-v3 yeilds a tiny regression on this test with this processor which is a Zen+ so it may be worth using this option if other areas of the code benefit from it, or on newer Intel or AMD chips.
It is also notable that when I started using this file as a performance test (someone posted it ot the forum), it was taking about 3 minutes, or 58 seconds with OMP. From 180 seconds reduced to 6 is an improvement of 30x. It does include my switch from Fedora 32 to 34B and GCC 11 which I did not think to take measurements before/after.