Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Autotune: Conditionally activate congruence integer domain #911

Merged
merged 4 commits into from
Nov 22, 2022

Conversation

jerhard
Copy link
Member

@jerhard jerhard commented Nov 17, 2022

This PR extends the autotuner to be able to enable the congruence domain for a whole program. Previously, the autotuner only activated the congruence domain for functions that contain the %-operator (remainder) or were called by such functions.

However, the congruence domain may be useful even in some cases when the program does not contain the remainder operator. Therefore the congruence domain is activated on a program when there is still some "autotuner fuel" left for the configuration. This should enable the domain on small programs.

The formulas for computing the cost and value option were chosen as something that seemed sensible, but were not fine-tuned.

This PR also adds the congruence option to the autotuner in the svcomp23.json configuration. That means that the autotuner may activate the congruence domain, on a function level or for a whole program.

…on the whole program.

Enables congruence domain on whole program when there is enough complexity-'fuel' left
Enabling this option has two effects: (a) The congruence domain is enabled for functions that use modulo,
and (b) the congruence domain is globally enabled for programs where there is still some autotuner "fuel" for the program.
@jerhard jerhard added the sv-comp SV-COMP (analyses, results), witnesses label Nov 17, 2022
@jerhard jerhard added this to the SV-COMP 2023 milestone Nov 17, 2022
@jerhard jerhard self-assigned this Nov 17, 2022
conf/svcomp23.json Outdated Show resolved Hide resolved
By removing the setting, the autotuner will not enable congruences with this configuration.
@michael-schwarz
Copy link
Member

  • For reach safety, the overall impact is still negative, but we succeed on many interesting tasks.
  • For no overflow, we see a small positive impact.
  • For no data race, there is no impact.

Julian is working on fine-tuning the parameters now.

@michael-schwarz
Copy link
Member

I started another run with the new optimization.

@michael-schwarz
Copy link
Member

As this is deactivated by default and the issue we uncovered is not here, I am merging this now.

@michael-schwarz michael-schwarz merged commit 00bfa7f into master Nov 22, 2022
@michael-schwarz michael-schwarz deleted the autotune_congruence branch November 22, 2022 13:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
sv-comp SV-COMP (analyses, results), witnesses
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants