[Breaking Change] update rulinalg to v0.3.0#117
[Breaking Change] update rulinalg to v0.3.0#117tafia wants to merge 2 commits intoAtheMathmo:masterfrom
Conversation
|
I suppose you've probably started this on your side, but in case ... |
|
I wanted to get around to this but didn't have time - thank you so much! Glad to hear there were no regressions on your end. I'll try it out myself either later tonight or tomorrow and merge if everything looks good (I can't see any reason why this wouldn't be the case). |
|
Also - do you think this should produce a version bump to 0.5.0? It seems sensible but in practice probably not necessary. The core functionality of rusty-machine shouldn't be broken but if anyone is extending the library this will break. I imagine that right now this probably isn't likely... |
|
We reexport On the other hand, we should probably wait for having some benches BEFORE merging this so we can track perf regressions. |
|
I agree with the above. However I'll add in a couple other small breaking changes before doing the release. |
|
I ran the benchmarks with rulinalg 0.3.0 and saw no regressions! I think it would be best for you to confirm on your machine too - but I'm feeling pretty confident about this PR. |
|
Sorry for the late answer. I rebased on master and fixed the bench. Unfortunately, I actually see a small regression (5% when training nnet). |
No problem at all! I saw a negligible regression on my end. I'll try again later - if the problem persists I guess we have to do some profiling to figure out the cause. |
|
I ran this again using cargo-benchcmp and got the following: Though performance regressions aren't a huge issue at this stage. We should try to figure out what's going on. Maybe we can profile the two versions and find some low-hanging fruit? |
|
First off an apology - I just released 0.3.2 of rulinalg with a breaking change. You'll need to either update this PR with the breaking changes or fix the rulinalg version ( Onto (somewhat) better news - I did some profiling but don't really have any answers yet. I thought I'd share what I've done (and the results) to see if you can get any further. To generate the profile:
Here are my results: From looking through now I haven't spotted anything obvious - maybe these profiles aren't capturing what's going on too well. I was hoping cache misses would be the issue and we just needed to specialize the relevant functions for |
|
I've spent some more time trying to figure this out. The only possible culprit I've found is the When I tried fixing this and using a local build I didn't really see any performance boost though. The neural nets are pretty inefficient right now and are getting an improvement with #126 . Because of that it probably isn't worth spending much more time on this? Bench marks for |
|
Nice! On 10 Sep 2016 9:52 p.m., "James Lucas" notifications@github.com wrote:
|
|
I'd like to get it in earlier if I'm honest - as there are a couple other PRs stalled by this. I still need to review those properly and give feedback. If those are resolved or waiting on this directly I may finish up and merge - if you don't mind of course. |
|
Of course please go ahead On 14 Sep 2016 16:02, "James Lucas" notifications@github.com wrote:
|
|
Closing after merging #133 . |
Adds
BaseMatrixandBaseMatrixMutabout everywhere.I benchmarked timing the examples. I didn't notice a regression but better to double check on another system.
Once merged, it'll probably open the door to new optimizations now that slices have much more fn than before.