Commit Graph

34 Commits

Author SHA1 Message Date
Georgii Evtushenko
42d99a5753 Fix MSVC (#158)
* Fix MSVC

* Revert change of source list name
2024-04-04 09:53:30 -07:00
Georgy Evtushenko
4be0c5bdcd API convention 2024-01-11 10:48:52 -08:00
Georgy Evtushenko
dacbee127c Base method naming convention 2024-01-11 10:41:11 -08:00
Georgy Evtushenko
182c77e4f4 Got rid of the params description API 2024-01-10 12:30:17 -08:00
Georgy Evtushenko
bcd5c7d885 Remove extra member variable 2024-01-10 10:15:00 -08:00
Georgy Evtushenko
2dd4c18e2f Criterion registration macro 2024-01-08 14:20:17 -08:00
Georgy Evtushenko
fade52fa2e Different singleton convention 2024-01-08 14:08:12 -08:00
Georgy Evtushenko
85ed6f007c Rename criterion registry to criterion manager 2024-01-08 13:15:46 -08:00
Georgy Evtushenko
4d90c367f5 Showcase specifying benchmark stopping criterion 2024-01-08 13:09:27 -08:00
Georgy Evtushenko
de724a21f1 Rename get_params to get_params_description 2024-01-08 13:06:48 -08:00
Georgy Evtushenko
88cc582cea ABC 2024-01-08 13:03:33 -08:00
Georgy Evtushenko
b789240c76 Entropy-based stopping criterion 2024-01-05 14:59:48 -08:00
Georgy Evtushenko
51a9342b8a Fix examples 2023-04-10 14:53:32 +04:00
Allison Vacanti
6c2c53ed4a Reduce time spent smoketesting examples. 2022-02-11 13:54:40 -05:00
Allison Vacanti
3b41387637 Add nvbench::make_cuda_stream_view(cudaStream_t). 2022-02-11 13:26:33 -05:00
Yunsong Wang
fde2e408de Add stream benchmark example 2022-02-07 13:09:35 -05:00
Allison Vacanti
5d70492714 Enable more warning flags.
- /W4 on MSVC
- -Wall -Wextra + others on gcc/clang
- New NVBench_ENABLE_WERROR option to toggle "warnings as errors"
- Mark the nlohmann_json library as IMPORTED to switch to system includes
- Rename nvbench_main -> nvbench.main to follow target name conventions
- Explicitly suppress some cudafe warnings when compiling templates in
  nlohmann_json headers.
- Explicitly suppress some warnings from Thrust headers.
- Various fixes for warnings exposed by new flags.
- Disable CUPTI on CTK < 11.3 (See #52).
2021-12-18 20:13:25 -05:00
Georgy Evtushenko
1bc715267c CUPTI support 2021-12-18 12:03:52 +03: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
95b3c459b8 Add some columns to an example. 2021-03-18 16:08:30 -04:00
Allison Vacanti
52d3dfec8c Add size columns to an axes example. 2021-03-18 13:43:27 -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
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
ca8e2d6391 Reset on correct stream in timer example. 2021-03-09 20:18:13 -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
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