-
Notifications
You must be signed in to change notification settings - Fork 214
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
RFC: general low effort performance tweaks #157
Conversation
Thanks! |
Image below created with: library("ggplot2")
results_m <- read.csv("benchmarks/results_master.tsv", sep = "\t")
results_o <- read.csv("benchmarks/results_optim.tsv", sep = "\t")
results_diff = (results_o - results_m) /results_m
results_diff$Problem = results_m$Problem
results_diff$Algorithm = results_m$Algorithm
n <- length(unique(results$Problem))
ggplot(results_diff, aes(x = Algorithm, y = AverageRunTimeInMilliseconds, fill = Algorithm)) +
geom_bar() +
coord_flip() +
theme(legend.position = "none") +
xlab("") +
ylab("Relative difference in runtime") +
ggtitle("Speed of Optimization Algorithms") +
facet_grid(Problem ~ .)
ggsave("benchmarks/graphs/run_times.png") I'm not surprised some of the small problems run slower because from my experience |
This looks good by me. Thanks for doing it! |
RFC: general low effort performance tweaks
Thanks for merge. |
Nice improvements, especially for Nelder-Mead! |
I keep getting Julia Version 0.4.6 The same happens on a different CPU architecture (AMD) as well. Is this warning something to care about performance-wise? |
@KristofferC I'm obviously late to the party here, but did you do any benchmarking of the levenberg-marquardt changes? |
I don't think so no, but it should be easy to check this commit vs the one before it to get an estimate. |
This PR fixes all the low hanging performance tweaks I could find.
This includes:
@simd
on pertinent loopsscale!
instead of for loops.slice
instead of a copy.I currently only have access to a laptop where I run Ubuntu on a VM so the following benchmarks are not too interesting: https://docs.google.com/spreadsheets/d/1oHa7DcNFRy7s176yTWcNuLcuAsMvZ6qDlWzlOKiZpRY/edit?usp=sharing
Either someone can rerun them or I will do it in a few days when I get access to my beefy machine.