FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

Performance under different build options · Issue #972 · solvespace/solvespace · GitHub

Performance under different build options #972

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)

  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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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


      Back | FazBrowse Home | New Git URL