-
Notifications
You must be signed in to change notification settings - Fork 33
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
Add MKL as julia 1.7 dependency + minor style cleanup #26
Conversation
|
||
# Riccat recursion | ||
|
||
function riccati_trf(N, nx, nu, BAt, RSQ, L, LN, BAtL, M) | ||
|
||
LN = copy(RSQ[nu+1:nu+nx, nu+1:nu+nx]); | ||
LN = RSQ[nu+1:nu+nx, nu+1:nu+nx]; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe remove the semicolon(s) here, too, while you are at it?
LN = RSQ[nu+1:nu+nx, nu+1:nu+nx]; | |
LN = RSQ[nu+1:nu+nx, nu+1:nu+nx] |
@zanellia from your perspective, is this ready to merge? |
Hey @Seelengrab thanks a lot for the PR and sorry for the loose response.
|
IMO, the best answer would be for you to re-run the benchmark as that will ensure consistency. |
I've run this on a Intel(R) Core(TM) i7-6600U CPU @ 2.60GHz, which by now is a somewhat dated laptop CPU :) I do agree with @oscardssmith though, a uniform rerun so you can update your graphics (julia 1.7 will be released relatively soon, as far as I know) is probably best. |
@oscardssmith Sure. I was not going to patch the data points together XD.
@Seelengrab awesome, thanks! I will rerun everything on my laptop (FYI, back then the benchmark was run on an i7-7560U CPU running at 2.30 GHz) |
Have you run the benchmarks yet? I'm really interested in seeing how well this works when all the benchmarks are on the same machine. |
Hi!
Julia 1.7 will feature a mechanism called "BLAS trampoline", which allows for loading a BLAS library at runtime (see here). This PR makes use of that and adds MKL as a dependency (plus project management/instantiation stuff). Someone running the benchmark doesn't need to have MKL installed already, it's installed during the activation of the julia project before the benchmarks are run. This will only work with julia 1.7+ though (which should be released relatively soon), so if that's a concern I can add a note somewhere saying that the benchmarks require it.
I've also fixed the benchmarking script, since the existing version in the repo tried to run a
test_riccati.jl.in
file, which didn't exist. I've also made it so that theNM
andNREP
parameter is passed on the command line instead of hardcoding via a file.With this and the removal of some unnecessary (I think) copies, I get these results locally:
Note that I've only run
python3 run_benchmark_julia.py
as well aspython3 run_benchmark_numpy.py
, as I don't know how to run your BLASFEO benchmarks. I suspect the remaining difference in benchmarking times is due to this, as well as my laptop not being as fast as the machine you've run your benchmarks on. Nevertheless, since Julia+MKL can match performance of prometeo/BLASFEO once the matrix size becomes large enough i.e. we're memory bound, I suspect the speedup is real.Cheers!