Commit Graph

185 Commits

Author SHA1 Message Date
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
Allison Vacanti
544deaf539 Fix warning. 2021-03-03 16:57:17 -05:00
Allison Vacanti
75439d3ef8 Fix device global arg storage. 2021-03-03 16:49:43 -05:00
Allison Vacanti
9ff22cb12d Update README to use current macro names. 2021-03-03 16:30:45 -05:00
Allison Vacanti
a6b26ef7be Add initial README.md. 2021-03-03 16:00:11 -05:00
Allison Vacanti
cf71f6ee15 Update NVBench build system with initial standalone support. 2021-03-03 13:59:29 -05:00