Allison Vacanti
8b7a2e86b8
Avoid recompiling option_parser every time cmake runs.
...
Switch to `configure_file`, which won't touch the output file unless
the contents change.
2021-03-18 16:07:40 -04:00
Allison Vacanti
52d3dfec8c
Add size columns to an axes example.
2021-03-18 13:43:27 -04:00
Allison Vacanti
4e83e048ba
Store percentages as ratios.
...
Human-readable outputs (md) and CLI inputs still use percentages.
In-memory and machine-readable outputs (csv, json) use ratios.
This is the convention that spreadsheet apps expect. Fixes #2 .
2021-03-18 13:42:43 -04:00
Allison Vacanti
e62c786498
Set small timeout when running examples with ctest.
2021-03-18 13:33:50 -04:00
Allison Vacanti
ea53972af8
Add nvbench.all metatarget.
...
This builds all NVBench tests and examples without building targets in
any parent projects.
2021-03-18 13:33:23 -04:00
Allison Vacanti
94bf208701
Formatting and doc update.
2021-03-18 10:46:28 -04:00
Allison Vacanti
ab8fc13aac
Simplify enum_type_list usage.
...
Using C++17 auto template parameters enables two improvements:
1. Enum type no longer needed in `enum_type_list`:
```
// Old:
nvbench::enum_type_list<my_enum, my_enum::value1, my_enum::value2, ...>
// New:
nvbench::enum_type_list<my_enum::value1, my_enum::value2, ...>
```
2. New `nvbench::enum_type` helper cuts down on verbosity when writing
benchmarks
```
// Old
template <typename T, my_enum_a MyEnumA, my_enum_b MyEnumB>
void my_bench(nvbench::state &state,
nvbench::type_list<T,
std::integral_constant<my_enum_a,
MyEnumA>,
std::integral_constant<my_enum_b,
MyEnumB>>)
{ ... }
// New
template <typename T, my_enum_a MyEnumA, my_enum_b MyEnumB>
void my_bench(nvbench::state &state,
nvbench::type_list<T,
nvbench::enum_type<MyEnumA>,
nvbench::enum_type<MyEnumB>>)
{ ... }
```
2021-03-18 02:59:51 -04:00
Allison Vacanti
01cb22cad0
Move demangle<T>() out of detail namespace.
2021-03-17 19:22:28 -04:00
Allison Vacanti
d928b9a50f
Make column name optional for non-templated throughput setters.
2021-03-17 19:21:42 -04:00
Allison Vacanti
9f6404bac6
Pad range max for floating point types.
...
This avoids an annoying case where the max value is dropped due to
rounding errors.
Adds a few other missing test cases for `nvbench::range`, too.
Fixes #3 .
2021-03-16 15:12:53 -04:00
Allison Vacanti
56414078ea
Added state::get_XXXX_or_default(axis_name, default_value)
2021-03-16 14:36:20 -04:00
Allison Vacanti
60c94d9ed6
Add enum_type_axis and examples/enums.cu.
...
- `enum_type_axis` simplifies using integral_constants with type axes.
- `examples/enums.cu` demonstrates various ways of implementing parameter
sweeps with enum types.
2021-03-16 13:57:52 -04:00
Allison Vacanti
90f55a32ee
Add missing format string.
...
MSVC didn't catch this, but GCC won't compile it.
2021-03-12 11:10:20 -05:00
Allison Vacanti
aa8141f9fb
Encapsulate state usage in implementation.
2021-03-12 11:00:38 -05:00
Allison Vacanti
b6d6b238fc
Add timeout to blocking_kernel.
...
This adds a diagnostic when a KernelLauncher syncs but does not pass
`nvbench::exec_tag_sync`.
2021-03-12 10:03:06 -05:00
Allison Vacanti
6f1cafeda5
[clang-format] Formatting.
2021-03-12 09:33:25 -05:00
Allison Vacanti
1e5f858d99
Merge pull request #1 from PointKernel/doc-update
...
Minor corrections in doc
2021-03-11 18:32:00 -05:00
Yunsong Wang
a097e6d90d
Minor corrections in doc
2021-03-11 16:47:03 -05:00
Allison Vacanti
ca8e2d6391
Reset on correct stream in timer example.
2021-03-09 20:18:13 -05:00
Allison Vacanti
270ddcbbbf
Fix link to timer example.
2021-03-09 20:07:58 -05:00
Allison Vacanti
f15b668b03
Add nvbench.test.all and nvbench.example.all metatargets.
2021-03-09 16:03:14 -05:00
Allison Vacanti
3fc75f5ea6
Add more examples.
...
- exec_tag_timer
- exec_tag_sync
- skip
- throughput
2021-03-09 16:03:14 -05:00
Allison Vacanti
3d83fe20ac
Return early on skip.
2021-03-08 23:23:45 -05:00
Allison Vacanti
c24f0228ac
Typos.
2021-03-08 23:22:12 -05:00
Allison Vacanti
cc01d8863c
Fix copyright year.
2021-03-08 18:39:27 -05:00
Allison Vacanti
ca2ed3e9be
Example kernels need streams...
2021-03-08 18:36:59 -05:00
Allison Vacanti
33aa9e1a07
Update README to link to the new example.
2021-03-08 18:26:26 -05:00
Allison Vacanti
0138a4eeaa
Use reasonable default format string for floats.
...
This matches what markdown_printer does to avoid fp noise.
2021-03-08 18:26:26 -05:00
Allison Vacanti
c133784763
Add the first example.
...
- New NVBench_ENABLE_EXAMPLES CMake option.
- examples/axis.cu provides examples of parameter sweeps.
- Moves testing/sleep_kernel.cuh -> nvbench/test_kernels.cuh
- Accessible to examples and provides some built-in kernels for users
to experiement with.
- Not included with `<nvbench/nvbench.cuh>`.
2021-03-08 18:26:26 -05:00
Allison Vacanti
b01b8fe8dc
Clean up exec_tags.
...
We really only need to expose `timer` and `sync`.
2021-03-06 09:35:56 -05:00
Allison Vacanti
845c9ac662
Add state::get_axis_values_as_string for JSON output.
2021-03-05 18:58:36 -05:00
Allison Vacanti
922a6d09d0
Add --json option to CLI docs.
2021-03-05 16:37:23 -05:00
Allison Vacanti
8afba6c86a
Use CMake to generate --help strings from markdown docs.
2021-03-05 16:37:18 -05:00
Allison Vacanti
27eb2b81ff
Fail gracefully when PTX is not found for a device.
2021-03-05 10:50:57 -05:00
Allison Vacanti
b1269b2f7f
Add json_printer.
...
The new dependency emits some warnings from it's header. We'll need
to suppress / fix those.
2021-03-05 10:50:41 -05:00
Allison Vacanti
acf076ec02
Add missing [[nodiscard]].
2021-03-04 23:24:51 -05:00
Allison Vacanti
33fa0c773f
Typo.
2021-03-04 23:24:37 -05:00
Allison Vacanti
65bc2c1e3f
Documentation overhaul.
...
Revamp README, split into multiple files. Add docs on CLI.
Add `--help` and `--help-axis`.
2021-03-04 18:40:23 -05:00
Allison Vacanti
92fb4c7486
Link to NVBench Demo from README.
2021-03-04 16:26:01 -05:00
Allison Vacanti
b8876db858
Added CODE_OF_CONDUCT.md.
2021-03-04 16:17:53 -05:00
Allison Vacanti
430d5cedee
Add .clang-format.
2021-03-04 16:03:11 -05:00
Allison Vacanti
078919b6b4
Add LICENSE file and boilerplate.
...
for i in `find ./ -regex ".*\.cuh?$"`
do
sh -c "cat ~/boilerplate ${i} > tmp && mv tmp ${i}"
done
2021-03-04 16:03:02 -05:00
Allison Vacanti
b1327b5f2b
Expand summary documentation.
2021-03-04 07:19:37 -05:00
Allison Vacanti
ba6c8075c1
Update summary name to current conventions.
2021-03-04 07:19:18 -05:00
Allison Vacanti
b562934a46
Style fix for enum.
2021-03-04 07:00:14 -05:00
Allison Vacanti
a588af92fa
Simplify file opening logic.
2021-03-03 21:37:09 -05:00
Allison Vacanti
b858b2c06d
Update README example to use current macro names.
2021-03-03 21:01:05 -05:00
Allison Vacanti
47c69b83c9
More README cleanup.
2021-03-03 17:29:15 -05:00
Allison Vacanti
d7c34c835d
More README cleanup.
2021-03-03 17:25:12 -05:00
Allison Vacanti
21e13f002d
Fix error in README.
2021-03-03 17:22:35 -05:00