Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This creates a simple benchmark for catching performance regressions on small, tightly controlled problems. To kick things off I added the multivariate first-order optimizers including
Adam
,AdaMax
,BFGS
,LBFGS
,NGMRES
,ConjugateGradient
,GradientDescent
, andMomentumGradientDescent
.The specific benchmark I added is fitting the Gabor function (2 parameters) to a noisy dataset.
It's compatible with any library supporting BenchmarkTools.jl. You can run the benchmark with:
I also add a GitHub action to run AirspeedVelocity.jl on this benchmark for any new PR. It will automatically print out the performance and load time comparison of master in a GitHub comment on the PR.
The current benchmarks across revision history are as follows:
Meaning there are no immediate performance regressions. However the load time has clearly increased from v1.7 to v1.8 which #1081 will fix.
To create this table above, run the following in bash:
We can also get the memory:
with
--mode=memory
in thebenchpkgtable
command. If you want I can put that table in the GitHub action as well?