Allison Piper
a0f2fab72b
Squashed commit of the following:
...
commit c5b2fc0a8b
Author: Allison Piper <alliepiper16@gmail.com >
Date: Sat Apr 6 21:48:20 2024 +0000
Add supported compilers and tools in README.md.
commit 92fe366da5
Author: Allison Piper <alliepiper16@gmail.com >
Date: Sat Apr 6 20:45:30 2024 +0000
Fix issues discovered by header tests.
commit f7f6c92143
Author: Allison Piper <alliepiper16@gmail.com >
Date: Sat Apr 6 20:45:06 2024 +0000
Setup header tests, add C++20 header tests + examples.
The core library will always be built with C++17, but
we test our headers / examples under 17 and 20.
commit 4b24f26b66
Author: Allison Piper <alliepiper16@gmail.com >
Date: Sat Apr 6 16:21:42 2024 +0000
Pass CUDA FLAGS to install tests.
commit 4fb672ae91
Author: Allison Piper <alliepiper16@gmail.com >
Date: Sat Apr 6 15:43:41 2024 +0000
Add newer GCC (13) and Clang (17, 18).
2024-04-06 22:05:40 +00:00
Allison Piper
a2f88ff790
Set CUDA_MODULE_LOADING=EAGER before main. ( #157 )
...
* Set `CUDA_MODULE_LOADING=EAGER` before `main`.
Fixes #136
* Portability for `setenv`.
* Remove pre-main CUDART usage and setup env in main.
* Fail examples if they deadlock.
This is the best way we have to diagnose a regression for
NVIDIA/nvbench#136 .
* Add an initialize method to benchmark_manager for CUDA-related setup.
Benchmarks are created statically, so their constructors cannot call the CUDA APIs without breaking the CUDA_MODULE_LOAD setup.
This method is called from `main` after the environment has been configured.
2024-04-06 11:03:42 -04:00
Allison Piper
e8c8877d36
Squashed commit of the following:
...
commit 4b309e6ad8
Author: Allison Piper <alliepiper16@gmail.com >
Date: Sat Apr 6 13:19:14 2024 +0000
Minor cleanups
commit 476ed2ceae
Author: Allison Piper <alliepiper16@gmail.com >
Date: Sat Apr 6 12:53:37 2024 +0000
WAR compiler ice in nlohmann json.
Only seeing this on GCC 9 + CTK 11.1. Seems to be
having trouble with the `[[no_unique_address]]` optimization.
commit a9bf1d3e42
Author: Allison Piper <alliepiper16@gmail.com >
Date: Sat Apr 6 00:24:47 2024 +0000
Bump nlohmann json.
commit 80980fe373
Author: Allison Piper <alliepiper16@gmail.com >
Date: Sat Apr 6 00:22:07 2024 +0000
Fix llvm filesystem support
commit f6099e6311
Author: Allison Piper <alliepiper16@gmail.com >
Date: Fri Apr 5 23:18:44 2024 +0000
Drop MSVC 2017 testing.
commit 5ae50a8ef5
Author: Allison Piper <alliepiper16@gmail.com >
Date: Fri Apr 5 23:02:32 2024 +0000
Add mroe missing headers.
commit b2a9ae04d9
Author: Allison Piper <alliepiper16@gmail.com >
Date: Fri Apr 5 22:37:56 2024 +0000
Remove old CUDA+MSVC builds and make windows build-only.
commit 5b18c26a28
Author: Allison Piper <alliepiper16@gmail.com >
Date: Fri Apr 5 22:37:07 2024 +0000
Fix header for std::min/max.
Why do I always think it's utility instead of algorithm....
commit 6a409efa2d
Author: Allison Piper <alliepiper16@gmail.com >
Date: Fri Apr 5 22:18:18 2024 +0000
Temporarily disable CUPTI on all windows builds.
commit f432f88866
Author: Allison Piper <alliepiper16@gmail.com >
Date: Fri Apr 5 21:42:52 2024 +0000
Fix warnings on MSVC.
commit 829787649b
Author: Allison Piper <alliepiper16@gmail.com >
Date: Fri Apr 5 21:03:16 2024 +0000
More flailing about in powershell.
commit 21742e6bea
Author: Allison Piper <alliepiper16@gmail.com >
Date: Fri Apr 5 20:36:08 2024 +0000
Cleanup filesystem header handling.
commit de3d202635
Author: Allison Piper <alliepiper16@gmail.com >
Date: Fri Apr 5 20:09:00 2024 +0000
Windows CI debugging.
commit a4151667ff
Author: Allison Piper <alliepiper16@gmail.com >
Date: Fri Apr 5 19:45:40 2024 +0000
Quotation mark madness
commit dd04f3befe
Author: Allison Piper <alliepiper16@gmail.com >
Date: Fri Apr 5 19:27:27 2024 +0000
Temporarily disable NVML on windows CI until new containers are ready.
commit f3952848c4
Author: Allison Piper <alliepiper16@gmail.com >
Date: Fri Apr 5 19:25:22 2024 +0000
WAR issues on gcc-7.
commit 198986875e
Author: Allison Piper <alliepiper16@gmail.com >
Date: Fri Apr 5 19:25:04 2024 +0000
More matrix/devcontainer updates.
commit b9712f8696
Author: Allison Piper <alliepiper16@gmail.com >
Date: Fri Apr 5 18:30:35 2024 +0000
Fix windows build scripts.
commit 943f268280
Author: Allison Piper <alliepiper16@gmail.com >
Date: Fri Apr 5 18:18:33 2024 +0000
Fix warnings with clang host compiler.
commit 7063e1d60a
Author: Allison Piper <alliepiper16@gmail.com >
Date: Fri Apr 5 18:14:28 2024 +0000
More devcontainer hijinks.
commit 06532fde81
Author: Allison Piper <alliepiper16@gmail.com >
Date: Fri Apr 5 17:51:25 2024 +0000
More matrix updates.
commit 78a265ea55
Author: Allison Piper <alliepiper16@gmail.com >
Date: Fri Apr 5 17:34:00 2024 +0000
Support CLI CMake options for windows ci scripts.
commit 670895c867
Author: Allison Piper <alliepiper16@gmail.com >
Date: Fri Apr 5 17:31:59 2024 +0000
Add missing devcontainers.
commit b121823e74
Author: Allison Piper <alliepiper16@gmail.com >
Date: Fri Apr 5 17:22:54 2024 +0000
Build for `all-major` architectures in presets.
We can get away with this because we require CMake 3.23.1.
This was added in 3.23.
commit fccfd44685
Author: Allison Piper <alliepiper16@gmail.com >
Date: Fri Apr 5 17:22:08 2024 +0000
Update matrix file.
commit e7d43ba90e
Author: Allison Piper <alliepiper16@gmail.com >
Date: Fri Apr 5 16:23:48 2024 +0000
Consolidate build/test jobs.
commit c4044056ec
Author: Allison Piper <alliepiper16@gmail.com >
Date: Fri Apr 5 16:04:11 2024 +0000
Add missing build script.
2024-04-06 13:56:10 +00:00
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