Skip to content

Performance under different build options #972

@phkahler

Description

@phkahler

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)

  1. -DCMAKE_BUILD_TYPE=RelWithDebInfo
  2. -DENABLE_OPENMP=yes
  3. -DENABLE_LTO=yes
  4. -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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions