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

Use broadcast for some operations in arraymath #19746

Merged
merged 2 commits into from
Dec 30, 2016
Merged

Conversation

andreasnoack
Copy link
Member

@nanosoldier runbenchmarks(ALL, vs = ":master")

@kshyatt kshyatt added the domain:broadcast Applying a function over a collection label Dec 28, 2016
@nanosoldier
Copy link
Collaborator

Your benchmark job has completed - possible performance regressions were detected. A full report can be found here. cc @jrevels

@andreasnoack
Copy link
Member Author

Couldn't reproduce the regressions locally so will assume that they are noise.

@pabloferz
Copy link
Contributor

pabloferz commented Dec 29, 2016

For small arrays there's going to be a tiny overhead for things like broadcast!(conj, A, A) compared to conj!(A) since we make sure that the shapes of the arrays are compatible. We should probably have a non-size-checking broadcast! version.

@andreasnoack andreasnoack force-pushed the anj/arraymath branch 2 times, most recently from 1e01bac to 8da7f8b Compare December 29, 2016 03:39
@andreasnoack
Copy link
Member Author

andreasnoack commented Dec 29, 2016

Decided to use map instead since it appears to be a bit faster for small arrays. Also realized that the binary operations could use map broadcast.

Update: Surprisingly, broadcast appears to be significantly faster than map. I can reproduce this locally. Would be good to know why.

@andreasnoack
Copy link
Member Author

@nanosoldier runbenchmarks(ALL, vs = ":master")

@andreasnoack andreasnoack changed the title Use broadcast for unary operations in arraymath Use map for some operations in arraymath Dec 29, 2016
@nanosoldier
Copy link
Collaborator

Your benchmark job has completed - possible performance regressions were detected. A full report can be found here. cc @jrevels

@andreasnoack
Copy link
Member Author

@nanosoldier runbenchmarks("linalg", vs = ":master")

@andreasnoack andreasnoack changed the title Use map for some operations in arraymath Use broadcast for some operations in arraymath Dec 29, 2016
@nanosoldier
Copy link
Collaborator

Your benchmark job has completed - no performance regressions were detected. A full report can be found here. cc @jrevels

@KristofferC
Copy link
Sponsor Member

What changed from the previous nanosoldier run?

@andreasnoack
Copy link
Member Author

map -> broadcast. I thought that map would be faster because it is simpler but for some reason broadcast is much faster. We should probably try to figure out why map is slower.

@andreasnoack
Copy link
Member Author

Anybody knows what this test failure is https://travis-ci.org/JuliaLang/julia/jobs/187453412#L1598?

@Sacha0
Copy link
Member

Sacha0 commented Dec 29, 2016

Referencing #17321 re. the map versus broadcast perf issue. Best!

@tkelman
Copy link
Contributor

tkelman commented Dec 29, 2016

If someone restarted the travis job here, please back up the raw log to a gist before you do that next time. Restarting Travis overwrittes the logs and we would have lost the julia: /home/travis/build/JuliaLang/julia/deps/srccache/llvm-3.7.1/lib/MC/MCAsmStreamer.cpp:308: virtual void {anonymous}::MCAsmStreamer::EmitLabel(llvm::MCSymbol*): Assertion `Symbol->isUndefined() && "Cannot define a symbol twice!"' failed. error.

@andreasnoack andreasnoack merged commit d44977c into master Dec 30, 2016
@andreasnoack andreasnoack deleted the anj/arraymath branch December 30, 2016 15:07
@tkelman
Copy link
Contributor

tkelman commented Dec 30, 2016

there's a problem in the test system right now that isn't correctly failing builds when run in parallel. that assertion failure looks real.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
domain:broadcast Applying a function over a collection
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants