Skip to content

Conversation

@Sacha0
Copy link
Contributor

@Sacha0 Sacha0 commented Oct 6, 2017

This pull request adds benchmarks for mixed sparse-dense matrix multiplication (in anticipation of improved kernels for these operations).

@pevnak, could you confirm that these benchmarks cover all cases relevant to your application?

These benchmarks might be a bit heavy. If so, is there some flag behind which we can hide some of these benchmarks? If not, perhaps changing the 1 in m, k, n = 1 .* (om, ok, on) to 3 would more realistically exercise cache. (Edit: These benchmarks should become much lighter once improved kernels go live.)

Thanks and best!

@pevnak
Copy link

pevnak commented Oct 7, 2017

This seems to be right to me. The sizes of my matrices are about two magnitudes bigger and even more sparser. I cannot judge, what impact it is going to have on the benchmark though.

Thanks a lot for this initiative.

@Sacha0
Copy link
Contributor Author

Sacha0 commented Oct 7, 2017

The continuous integration results suggest that these benchmarks took order of a minute, so massaging these benchmarks a bit larger may be alright (@ararslan?).

Also, the benchmarks for adjoint matmul variants will exercise essentially the same kernels as the benchmarks for corresponding transpose matmul variants. (Consider, for example, A_mul_Bc[!] and A_mul_Bt[!]). The same holds for out-of-place versus in-place matmul variants. So we might save some time by reducing the size of, for example, the adjoint and out-of-place variants, and use that time to increase the size of the transpose and in-place variants.

(That said, I imagine that these benchmarks should be fairly representative of corresponding larger problems as long as they spill out of L2 cache. Increasing s to two or three should achieve that.)

Thoughts? Particular suggestions? Thanks and best! :)

@ararslan
Copy link
Member

ararslan commented Oct 7, 2017

massaging these benchmarks a bit larger may be alright (@ararslan?).

¯\_(ツ)_/¯ Sure, seems reasonable

@Sacha0
Copy link
Contributor Author

Sacha0 commented Oct 8, 2017

I added some scale variation to the matrices in accord with the notes above. Assuming the revised benchmarks run in a reasonable amount of time, this pull request should be in shape. Best!

@ararslan ararslan merged commit fbfe225 into JuliaCI:master Oct 8, 2017
@Sacha0
Copy link
Contributor Author

Sacha0 commented Oct 8, 2017

Thanks Alex and Tomas! :)

@Sacha0 Sacha0 deleted the mixedmatmul branch October 8, 2017 20:17
Keno pushed a commit that referenced this pull request Feb 4, 2022
* Improve/fix show methods

Previously the logic for switching compact or verbose form of various
benchmark result objects are in `show(io::IO, group::BenchmarkGroup)`.
A more natural place would be `show(io::IO, t::Trial)` etc. as it let
code outside BenchmarkTools to switch the compactness using the
standard `IOContext` interface.  For example, with this patch `Trial`s
in `Vector` are shown in the compact form automatically.

This patch also adds:
* Colored output for the words `improvement` and `regression`.
* `:typeinfo` IO context support

* Remove :verbose IOContext
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants