Commit Graph

256 Commits

Author SHA1 Message Date
Allison Vacanti
b2d37c21fd Add export tests. 2021-10-20 14:02:16 -04:00
Allison Vacanti
27b23eeb46 Add new --version option to benchmark executables. 2021-10-20 14:02:16 -04:00
Allison Vacanti
ef36d3a558 Port to rapids-cmake.
- Add export sets
- Add install rules
- Remove manual CPM import, port to rapids_cpm_*, etc
- Organize CMake code into cmake/*.cmake files.
- NVBench is now a shared library.
2021-10-20 14:02:16 -04:00
Allison Vacanti
ed27365a41 Disable portion of test due to GCC 7 bug.
Fixes #39.
old-cmake
2021-10-19 12:26:02 -04:00
Allison Vacanti
72f9cd8adb Merge pull request #37 from allisonvacanti/fix-axis
Revert .cu -> .cxx change for option_parser TU.
2021-10-13 17:36:36 -04:00
Allison Vacanti
e11c6961b2 Revert .cu -> .cxx change for option_parser TU.
This change introduced a strange bug on GCC where a stack object is changed
seemingly randomly.

In `option_parser::update_axis`, the `flag` variable's `data()` pointer
is overwritten to point at garbage memory shortly after parsing. Nothing
related to this object is being updated when the corruption occurs.

This has been observed on gcc7+, but cannot be reproduced on MSVC.

Reverting the `option_parser.cxx` TU to be a CUDA object works
around this.

Fixes issue #36.
2021-10-13 17:36:01 -04:00
Jake Hemstad
2b8ef7442b Merge pull request #34 from jrhemstad/add_contributor_guide
Update README with info on examples/tests
2021-10-08 14:47:13 -05:00
Jake Hemstad
83a021181d Missing space. 2021-10-08 14:30:38 -05:00
Jake Hemstad
156967f6c3 Format. 2021-10-08 14:28:33 -05:00
Jake Hemstad
4f0c72b6bf Delete extra line. 2021-10-08 14:28:23 -05:00
Jake Hemstad
add1a34a04 Add sections for building examples and tests. 2021-10-08 13:03:00 -05:00
Jake Hemstad
131f557b53 Add .gitignore. 2021-10-08 13:02:22 -05:00
Allison Vacanti
0f926f6a3d Add missing move. 2021-10-08 00:41:28 -04:00
Allison Vacanti
b4ccfe980a Merge pull request #33 from allisonvacanti/17_only_print_used_devices
Only print used devices.
2021-10-07 17:20:17 -04:00
Allison Vacanti
3c5f445ef0 Only print actively used devices when running benchmarks. 2021-10-07 17:11:50 -04:00
Allison Vacanti
fcb9277b1d Track actively used devices in device_manager 2021-10-07 17:11:34 -04:00
Allison Vacanti
c530fce382 Add docs to device_manager. 2021-10-07 17:10:56 -04:00
Allison Vacanti
65158a9ff2 Make device_info sortable. 2021-10-07 17:10:16 -04:00
Allison Vacanti
401bc6e925 Merge pull request #32 from allisonvacanti/10_run_once
Add --run-once option.
2021-10-07 16:30:23 -04:00
Allison Vacanti
6d79c80152 Add --run-once option.
Fixes #10.

Adds a mode that forces a benchmark to only run once, simplifying
profiling usecases. This can be enabled by any of the following methods:

* Passing `--run-once` on the command line
* `NVBENCH_CREATE(...).set_run_once(true)` when declaring a benchmark
* `state.set_run_once(true)` from within the benchmark implementation.
2021-10-07 16:28:15 -04:00
Allison Vacanti
2de82f3041 Style. 2021-10-07 16:22:11 -04:00
Allison Vacanti
787481328e Merge pull request #31 from allisonvacanti/28_uniquer_benchmark_ids
Make benchmark names more unique.
2021-10-07 15:24:00 -04:00
Allison Vacanti
8db2456f3a Make benchmark names more unique.
Fixes #28, in which multiple benchmark TUs are linked together that use
NVBENCH_CREATE on the same line in multiple files, leading to symbol name
collisions.
2021-10-07 15:21:59 -04:00
Allison Vacanti
2212d86eb3 Merge pull request #27 from cliffburdick/unused_vars
Tag unused variables
2021-08-17 17:31:06 -04:00
Cliff Burdick
33c9c44a86 Removing variable name 2021-08-17 14:28:51 -07:00
Cliff Burdick
54eb5994da Tag unused variables 2021-08-17 13:59:52 -07:00
Allison Vacanti
40aa3e06e4 Merge pull request #26 from robertmaynard/mark_nvbench_sources_as_cxx_when_possible
Compile as many sources as C++ to improve build times
2021-07-22 12:41:53 -04:00
Robert Maynard
15434ce9e2 Compile as many sources as C++ to improve build times
This takes compilation time on my machine from 12.13sec to 9.47 in
parallel or serially from 93sec to 55sec.
2021-07-21 12:45:50 -04:00
Allison Vacanti
a2c57bfb70 Fix regression in l2flush. 2021-07-16 12:55:42 -04:00
Allison Vacanti
36e3f26eb3 Merge pull request #25 from robertmaynard/workaround_cuda_11.0_centos7_bug
Workaround CUDA 11.0 ICE on centos7
2021-07-15 12:08:49 -04:00
Robert Maynard
6274685015 Workaround CUDA 11.0 ICE on centos7 2021-07-15 11:52:23 -04:00
Allison Vacanti
dbe9502e3f Merge pull request #23 from robertmaynard/patch_nlohmann_json_to_support_cuda_11.0
Patch nlohmann json to avoid a compiler bug in nvcc 11.0
2021-07-09 11:49:26 -04:00
Robert Maynard
9cfb15be8b document why we are patching json.hpp 2021-07-09 11:28:43 -04:00
Robert Maynard
237363784a Patch nlohmann json to avoid a compiler bug in nvcc 11.0
Fixes #18
2021-07-08 16:52:52 -04:00
Allison Vacanti
9054880881 Support older versions of tabulate module.
Ubuntu 18.04 only provides tabulate v0.7, but colalign and github
formatting options were added in 0.8.3.
2021-07-08 14:48:02 -04:00
Allison Vacanti
a32f2d7eed Handle benchmarks with no axes in compare script. 2021-07-08 14:46:54 -04:00
Allison Vacanti
ab91baf5d8 Fix number parsing in compare script.
All numbers are now stored as strings to avoid truncation of 64-bit ints.
2021-07-08 14:45:27 -04:00
Allison Vacanti
1819b003c2 Update test json files with new number format and multi-device. 2021-07-08 14:44:18 -04:00
Allison Vacanti
e84e13ed51 Simplify benchmark_base::set_printer API.
Forcing the caller to use `std::ref` is gross.
2021-06-23 17:04:41 -04:00
Allison Vacanti
5fab2536e5 Merge pull request #14 from vyasr/enhanced_compare
Improve compare output
2021-06-22 16:27:03 -04:00
Allison Vacanti
861f66c161 Update comparison script.
- Handle multiple benchmarks.
- Split output to resemble nvbench markdown output:
  - Headings for benchmarks / devices
  - Compact tables with axis values / stats
- Handle `null` stdev (these are infinite, e.g. too few samples)
- Format numbers, times, percentages similar to nvbench.
- Add summary of total/pass/unknown/failure stats
- Add new test.json files (with multiple benchmarks in each)
2021-06-22 16:15:22 -04:00
Allison Vacanti
668a98ef16 Encode generic numerics as strings in JSON format.
JSON encodes all numerics as `double`s, which would truncate int64_t.
Write all generic numbers from `named_values` objects as strings.
These are still distinguishable by their `type` properties.
2021-06-22 16:10:52 -04:00
Vyas Ramasubramani
f1715786fd Add bracketing newlines. 2021-06-22 12:30:05 -04:00
Vyas Ramasubramani
1002082817 Apply black formatting. 2021-06-22 12:30:05 -04:00
Vyas Ramasubramani
dae1f16426 Add some intermeidate variables and simplify code to make it self-documenting. 2021-06-22 12:30:05 -04:00
Vyas Ramasubramani
053eb493c7 Add nonzero error code on exit if any tests fail and change output format to Github-style Markdown. 2021-06-22 12:30:05 -04:00
Vyas Ramasubramani
ab39c924b2 Add comment regarding better metrics of failure. 2021-06-22 12:30:05 -04:00
Ashwin Srinath
52775574a3 Add colorama to requirements 2021-06-22 12:30:05 -04:00
Ashwin Srinath
f3658c2b77 Add a requirements.txt 2021-06-22 12:30:05 -04:00
Ashwin Srinath
0f63f86e9f Report pass/fail status 2021-06-22 12:30:05 -04:00