Commit Graph

344 Commits

Author SHA1 Message Date
Allison Vacanti
da2ec38cdb Exclude some bits from clang-format. 2022-02-11 13:20:05 -05:00
Yunsong Wang
fde2e408de Add stream benchmark example 2022-02-07 13:09:35 -05:00
Yunsong Wang
6159d9c6cb Minor correction in unit test 2022-02-06 20:19:21 -05:00
Yunsong Wang
e05bf002f7 Use unique_ptr + custom deleter to simplify destroy logic 2022-02-06 20:14:41 -05:00
Yunsong Wang
e7c29c1c1b Update docs 2022-02-06 19:34:57 -05:00
Yunsong Wang
a2a12c689c Update docs/benchmarks.md
Co-authored-by: Jake Hemstad <jhemstad@nvidia.com>
2022-02-06 19:31:20 -05:00
Yunsong Wang
33a896f99e Update copyright year 2022-02-04 17:25:50 -05:00
Yunsong Wang
76cbbcc8f9 Update benchmarks.md 2022-02-04 17:20:40 -05:00
Yunsong Wang
470beda9f0 Add nvbench::state stream tests 2022-02-04 16:55:29 -05:00
Yunsong Wang
439ffec1c8 Minor correction 2022-02-04 16:35:55 -05:00
Yunsong Wang
86708ec793 Fix a stream destroy bug 2022-02-04 16:03:52 -05:00
Yunsong Wang
14eab0774a Update measure_* classes to construct launch from the state cuda stream 2022-02-04 14:16:43 -05:00
Yunsong Wang
c510a0e78c Update launch to hold a const ref of nvbenc::cuda_stream 2022-02-04 13:56:02 -05:00
Yunsong Wang
8aea3e467e Add a cuda stream member to nvbench::state 2022-02-04 13:51:30 -05:00
Yunsong Wang
15f2e92fdf Add owning and non-owning semantics to nvbench::cuda_stream 2022-02-04 13:26:00 -05:00
Allison Vacanti
b1b6d73afa Merge pull request #74 from S-o-T/fix_for_fmt8
Add missing formatter
2022-01-28 11:48:26 -05:00
Mark Shachkov
c9b1bdaf00 Cast axis_type to string prior to formatting 2022-01-28 10:11:21 +03:00
Allison Vacanti
a72f248af6 Require the NVBench package in test_export testing. 2022-01-19 15:42:26 -05:00
Allison Vacanti
aa64dac60f More updates to CI config. 2022-01-17 21:54:07 -05:00
Allison Vacanti
542a10e843 Bump default image to gcc9. 2022-01-17 17:59:07 -05:00
Allison Vacanti
6fe34737de Merge pull request #72 from allisonvacanti/gpuci
Add gpuCI metafiles.
2022-01-17 17:30:09 -05:00
Allison Vacanti
15371eb958 Add gpuCI metafiles. 2022-01-17 17:28:10 -05:00
Allison Vacanti
66ae331452 Update .gitignore 2022-01-17 17:02:53 -05:00
Allison Vacanti
a06a7c668c Merge pull request #70 from allisonvacanti/walltime_reports
Python / JSON updates
2022-01-13 17:13:24 -05:00
Allison Vacanti
39ffc84ee3 Merge pull request #69 from PointKernel/remove-unused-parameter-error
Get rid of unused parameter errors
2022-01-12 10:43:38 -05:00
Allison Vacanti
12df504bb6 Fix progress display for multiple device runs. 2022-01-11 17:58:05 -05:00
Allison Vacanti
8ba2cf1395 Update compare script and test files for new JSON. 2022-01-11 17:55:36 -05:00
Yunsong Wang
d1c82d00bf Get rid of unused parameter error 2022-01-11 17:20:17 -05:00
Allison Vacanti
348acbd6eb Use experimental/filesystem on GCC. 2022-01-11 17:19:55 -05:00
Allison Vacanti
a6925f3c2b Log commandline args in JSON output. 2022-01-11 16:30:37 -05:00
Allison Vacanti
9995eb67fd Add JSON file version checks to python scripts. 2022-01-11 15:06:54 -05:00
Allison Vacanti
26e511909d Write version info to json files. 2022-01-11 15:06:54 -05:00
Georgy Evtushenko
61afb8d7e7 Initial implementation of nvbench_histogram. 2022-01-11 15:06:54 -05:00
Allison Vacanti
f1c985955a Clean up JSON output for consistency and easier parsing.
- Prefer an array of objects with `.name` fields over key/value pairs
  for arbitrary collections of objects.
- Write common summary value names directly as fields.
2022-01-11 15:06:54 -05:00
Allison Vacanti
b11c0ba3a0 Add a binary JSON output (--jsonbin) that dumps timing samples. 2022-01-11 15:06:54 -05:00
Allison Vacanti
74e96e8618 Add nvbench_walltime.py script. 2022-01-11 15:06:54 -05:00
Allison Vacanti
5eac6b6340 Measure and report walltime for all measurements. 2022-01-11 15:06:54 -05:00
Allison Vacanti
6dee1eec3b Refactor summary API and update nvbench/summary.cuh docs.
The string used when constructing a summary is no longer a human
readable name, but rather a tag string (e.g. "nv/cold/time/gpu/mean").
These will make lookup easier and more stable going forward.

name vs. short_name no longer exists. Now there is just "name", which
is used for column headings. The "description" string may still be
used for detailed information.

Updated the json tests and compare script to reflect these changes.
2022-01-11 15:06:26 -05:00
Allison Vacanti
9481e947aa Add C++ dialect detection macros. 2022-01-11 14:40:33 -05:00
Allison Vacanti
fc86d6a524 Merge pull request #65 from allisonvacanti/fix_cpu_noise_calc
Fix cpu noise calcs.
2021-12-22 13:29:37 -05:00
Allison Vacanti
6edc5b91a5 Fix cpu noise calcs. 2021-12-22 13:27:07 -05:00
Allison Vacanti
2f8bb28c52 Merge pull request #64 from allisonvacanti/noise_convergence
New convergence check
2021-12-21 21:30:39 -05:00
Allison Vacanti
178dd0eb68 Implement new convergence check for noisy kernels.
Previously, convergence was tested by waiting for the relative stdev
of cuda timings ("noise") to drop below a certain percentage
(`max_noise`).

This assumed that all benchmarks would eventually see their noise drop
to some threshold, but this is not the case. In practice, many benchmarks
never converge to the default 0.5% relative stdev and instead will always
run to the 15s timeout -- even if the means have converged in a second
or two.

Added a new check that tests when the noise itself stabilizes and ends
the benchmark, even if noise > max_noise.

After testing, this patch alone significantly reduces the runtime of the
Thrust+CUB benchmark suite (from 30 hours to 5 hours) and produces similar
timing results.

The parameters used to tune this feature are not exposed -- if this
approach works long-term and there's a strong motivation to let users
tweak them, then we can worry about names/APIs/CLI/docs later.
2021-12-21 21:24:02 -05:00
Allison Vacanti
8e56a7bd94 Add noisy_bench with some benchmarks that currently always time-out. 2021-12-21 21:05:13 -05:00
Allison Vacanti
3c01814945 Skip non-json files and empty files in compare script. 2021-12-21 21:03:02 -05:00
Allison Vacanti
e70c31d7e1 Merge pull request #63 from allisonvacanti/fix_progress_display
Fix progress display for inactive type axis values.
2021-12-21 20:42:05 -05:00
Allison Vacanti
8cacc821d0 Fix an error message.
This path gets hit for type axes as well as strings.
2021-12-21 20:41:45 -05:00
Allison Vacanti
c9ab8e2eb3 Fix progress display for inactive type axis values.
When type axis values were disabled they were still counted towards
a benchmark's total number of configs.
2021-12-21 20:36:52 -05:00
Allison Vacanti
0f5c8624f6 Merge pull request #62 from allisonvacanti/debug_warnings
Suppress warnings on MSVC Debug builds.
2021-12-21 19:41:19 -05:00
Allison Vacanti
288b1564e0 Suppress warnings on MSVC Debug builds.
Also moved the config.cuh.in template into the source directory where
it'll be easier to find.
2021-12-21 19:35:23 -05:00