Commit Graph

260 Commits

Author SHA1 Message Date
Allison Vacanti
f984efdc26 Don't explicitly link with cudart.
This is implicitly added by nvcc, and the explicit setting was breaking
environments where cudart_static is unavailable, e.g. conda.
2021-10-27 12:13:32 -04:00
Allison Vacanti
611385b047 Print version info with --help. 2021-10-26 17:45:33 -04:00
Allison Vacanti
1875d9962d Document new --version option. 2021-10-26 17:45:20 -04:00
Allison Vacanti
e6b5f51f1c Merge pull request #42 from allisonvacanti/rapids-cmake
Port to rapids-cmake
2021-10-26 17:26:08 -04:00
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