-
Notifications
You must be signed in to change notification settings - Fork 149
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
Port perf/benchmark_matrix_ops.jl to benchmark/*.jl #742
Conversation
Benchmark resultJudge resultBenchmark Report for /home/runner/work/StaticArrays.jl/StaticArrays.jlJob Properties
ResultsA ratio greater than
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfoTarget
Baseline
Target resultBenchmark Report for /home/runner/work/StaticArrays.jl/StaticArrays.jlJob Properties
ResultsBelow is a table of this job's results, obtained by running the benchmarks.
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfo
Baseline resultBenchmark Report for /home/runner/work/StaticArrays.jl/StaticArrays.jlJob Properties
ResultsBelow is a table of this job's results, obtained by running the benchmarks.
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfo
Runtime information
|
Benchmark resultJudge resultBenchmark Report for /home/runner/work/StaticArrays.jl/StaticArrays.jlJob Properties
ResultsA ratio greater than
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfoTarget
Baseline
Target resultBenchmark Report for /home/runner/work/StaticArrays.jl/StaticArrays.jlJob Properties
ResultsBelow is a table of this job's results, obtained by running the benchmarks.
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfo
Baseline resultBenchmark Report for /home/runner/work/StaticArrays.jl/StaticArrays.jlJob Properties
ResultsBelow is a table of this job's results, obtained by running the benchmarks.
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfo
Runtime information
|
|
||
const suite = BenchmarkGroup() | ||
const matrix_sizes = if haskey(ENV, "GITHUB_EVENT_PATH") | ||
(1, 2, 3, 4, 10, 20) |
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.
matrix_sizes = 1:20
=> total CI time = 37 min https://github.com/JuliaArrays/StaticArrays.jl/runs/456805444matrix_sizes = (1, 2, 3, 4, 10, 20)
=> total CI time = 15 min https://github.com/JuliaArrays/StaticArrays.jl/runs/456815324
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.
Great 👍
If we're already at 15 min, I worry a bit about will happen for a comprehensive benchmark suite 😬
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.
(I guess using the same treatment for QR would probably help with that 15 mins though)
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.
Yeah, I have the same worry. I guess we can't do the "full sweep" in CI and be a bit less greedy about the parameters we try.
An option to reduce CI time is to tune benchmarks separately and store the JSON file somewhere. But I think it's easy to get it stale and it's cumbersome to add benchmarks...
BTW, a less ad-hoc way to do this kind of filtering is to use @tagged
from BenchmarkToos.jl: https://github.com/JuliaCI/BenchmarkTools.jl/blob/master/doc/manual.md#indexing-into-a-benchmarkgroup-using-tagged I don't think PkgBenchmark.jl support this though.
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.
I also wonder how much of this is compile time; some of the algorithms are probably quite terrible for N=20.
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.
Yeah, one thing I can't copy easily from perf/*.jl
is the compile-time benchmarks. It'd be great if BenchmarkTools reports compile-time while doing the tuning. I don't think it is difficult but just tedious...
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.
Great thanks, this looks pretty straightforward (but very useful).
Browsing the results I noticed that ordering of benchmarks is quite confusing so some padding may help with that.
|
||
const suite = BenchmarkGroup() | ||
const matrix_sizes = if haskey(ENV, "GITHUB_EVENT_PATH") | ||
(1, 2, 3, 4, 10, 20) |
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.
Great 👍
If we're already at 15 min, I worry a bit about will happen for a comprehensive benchmark suite 😬
|
||
const suite = BenchmarkGroup() | ||
const matrix_sizes = if haskey(ENV, "GITHUB_EVENT_PATH") | ||
(1, 2, 3, 4, 10, 20) |
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.
(I guess using the same treatment for QR would probably help with that 15 mins though)
Co-Authored-By: Chris Foster <chris42f@gmail.com>
Benchmark resultJudge resultBenchmark Report for /home/runner/work/StaticArrays.jl/StaticArrays.jlJob Properties
ResultsA ratio greater than
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfoTarget
Baseline
Target resultBenchmark Report for /home/runner/work/StaticArrays.jl/StaticArrays.jlJob Properties
ResultsBelow is a table of this job's results, obtained by running the benchmarks.
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfo
Baseline resultBenchmark Report for /home/runner/work/StaticArrays.jl/StaticArrays.jlJob Properties
ResultsBelow is a table of this job's results, obtained by running the benchmarks.
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfo
Runtime information
|
This PR adds
benchmark/bench_matrix_ops.jl
which is a straight-forward port ofperf/benchmark_matrix_ops.jl
.