Allison Vacanti
9a129153a2
Pad hot measurement batch sizes.
...
The predictions were frequently under by just 1-2 iterations, this should
fix that.
2021-01-02 13:22:34 -05:00
Allison Vacanti
c7902fa353
Force inline kernel launches.
2021-01-02 13:20:42 -05:00
Allison Vacanti
49b34564a1
Better formatting for power-of-two data in markdown output.
2021-01-02 13:19:53 -05:00
Allison Vacanti
169a4050df
Fix type axis order in output.
...
They should now appear in the order they are specified.
2021-01-02 03:13:20 -05:00
Allison Vacanti
0f3f1ef899
Polishing up the proof of concept.
...
- Enable throughput stats
- Add cold measurements
- Print liveness/log messages while running trials.
- Improve markdown formatting
- nvbench::range
2021-01-02 01:45:12 -05:00
Allison Vacanti
d93462ca09
Improve markdown output for durations.
...
E.g:
# cub::DeviceReduce::Sum
| ValueType | NumInputs | Hot Trials | Hot GPU | Hot CPU |
|-----------|-----------|------------|-------------|-------------|
| I32 | 1024 | 261574 | 3829.22 ns | 3829.65 ns |
| I32 | 1048576 | 19826 | 50436.60 ns | 50448.06 ns |
| F32 | 1024 | 272872 | 3664.72 ns | 3665.97 ns |
| F32 | 1048576 | 20318 | 50499.10 ns | 50501.41 ns |
| F64 | 1024 | 237534 | 4221.46 ns | 4221.98 ns |
| F64 | 1048576 | 10850 | 93556.23 ns | 93560.52 ns |
2021-01-01 22:14:45 -05:00
Allison Vacanti
93ed09f2b3
Finish off proof of concept level functionality.
...
Add `measure_hot` and `markdown_format` as detail classes, since
they're still pretty rough and need to be worked into the design.
But for now, they're functional proofs of concept. The formatting is
rough, but demonstrates basics.
Also added launch, exec, and summary functionality. These aren't details
and will be part of the project's API.
2021-01-01 21:47:20 -05:00
Allison Vacanti
099286867d
Update C++17 flags.
2021-01-01 21:39:01 -05:00
Allison Vacanti
f6d275f6e1
Fix documentation snippet.
2021-01-01 02:11:04 -05:00
Allison Vacanti
238cd3e773
Add main nvbench.cuh header.
2021-01-01 02:10:51 -05:00
Allison Vacanti
3ffd2e6aea
Add NVBENCH_CREATE and associated machinery.
2021-01-01 01:36:53 -05:00
Allison Vacanti
0776bdc4be
Add nvbench::runner.
2020-12-31 21:27:51 -05:00
Allison Vacanti
29d7eafc33
cartesian_product<type_list<...>> -- now with edge cases!
...
Add test cases for zero or one input type_list.
2020-12-31 19:51:18 -05:00
Allison Vacanti
b1cbf6cab8
Add test for typeless state_generator::create.
...
Turns out this edgecase was already handled correctly, but let's
make sure it stays that way.
2020-12-31 17:07:19 -05:00
Allison Vacanti
a1bd7b03b3
Update state_generator::create to handle type axes.
2020-12-31 16:28:41 -05:00
Allison Vacanti
a01254fd7a
Misc cleanups, no code changes.
2020-12-31 13:36:09 -05:00
Allison Vacanti
fd3b82cc6f
Move sleep kernel to its own header.
...
This will be useful for testing in general.
2020-12-30 14:47:25 -05:00
Allison Vacanti
ad44463d6e
Replace params class with nvbench::named_values.
...
Refactor nvbench::state to use this for axis parameters.
These will also be useful for summaries and measurements.
Also adds a new ASSERT_THROWS_ANY macro to test some of the new API.
2020-12-30 14:45:46 -05:00
Allison Vacanti
8c0b8e3423
Add cpu_timer.
2020-12-29 23:51:09 -05:00
Allison Vacanti
b07ffafff4
Add cuda_timer, cuda_stream.
2020-12-29 23:50:39 -05:00
Allison Vacanti
981031e732
Update axes_metadata test to reflect new API.
2020-12-29 19:41:29 -05:00
Allison Vacanti
754d0c5106
Restore int64_t_axis::get_values method.
...
This got lost in the shuffle somewhere...
2020-12-29 19:41:10 -05:00
Allison Vacanti
e631f1ff03
Add state_generator::create method to encapsulate state creation.
2020-12-29 19:35:07 -05:00
Allison Vacanti
beaead2c3f
Split benchmark into more specialized, nontemplated structs.
2020-12-29 19:34:11 -05:00
Allison Vacanti
093077de5f
Add nvbench::state.
...
This class holds a single value for each runtime axis.
2020-12-27 10:44:22 -05:00
Allison Vacanti
7b14ceb3fe
Add detail::state_generator.
...
This helper utility computes the cartesian product of the runtime
axes.
2020-12-27 10:29:24 -05:00
Allison Vacanti
40f92b4705
Add initial nvbench::benchmark.
...
It's basically just a container for the various axis classes at this
point.
2020-12-24 17:33:03 -05:00
Allison Vacanti
691ed2c18d
Add nvbench::params.
2020-12-22 17:44:33 -05:00
Allison Vacanti
76f9c9b0d6
Add nvbench::string_axis.
2020-12-22 16:57:42 -05:00
Allison Vacanti
1e5fe88c9b
Add float64_axis.
2020-12-22 16:38:05 -05:00
Allison Vacanti
65eadda1c1
Add type_axis::get_index.
2020-12-22 16:37:19 -05:00
Allison Vacanti
07e4cc36c2
Add type_axis.
2020-12-22 15:20:04 -05:00
Allison Vacanti
95e2eaf607
Add nvbench::tl::foreach.
2020-12-22 15:20:04 -05:00
Allison Vacanti
fb10be7e72
Add nvbench::tl::size.
2020-12-22 15:20:04 -05:00
Allison Vacanti
9b17a991fc
Add type_strings.
2020-12-22 15:20:03 -05:00
Allison Vacanti
621808e16d
Propogate standard info to CPM packages.
2020-12-22 15:20:03 -05:00
Allison Vacanti
1c04e49787
Rename type_list header to match convention.
2020-12-22 15:20:03 -05:00
Allison Vacanti
334178dfa8
Tweak int64_axis API.
...
- Add `int64_axis_flags`.
- Rename `axis_base` virtuals.
2020-12-22 15:20:03 -05:00
Allison Vacanti
13dc404d56
Add int64_axis.
2020-12-21 20:31:12 -05:00
Allison Vacanti
48bd9c9dc4
Add fmt library.
2020-12-21 17:45:36 -05:00
Allison Vacanti
014d94e402
Add nvbench::type_list.
2020-12-20 21:09:47 -05:00
Allison Vacanti
4462460947
Rearrange project structure.
2020-10-18 11:02:03 -04:00
Allison Vacanti
a942f115aa
cuda_timer: add ready(), refactor member vars, stream support.
2020-10-18 08:19:25 -04:00
Allison Vacanti
5746769fb6
Add clang-format, update files
2020-10-17 15:31:20 -04:00
Allison Vacanti
4b558191e8
Add CUB DeviceScan.
2020-10-17 15:27:15 -04:00
Allison Vacanti
b6cfbe5623
Don't override CUDA_ARCH for targets, just use the CMake global config.
2020-10-17 10:01:13 -04:00
Allison Vacanti
f7a7373d01
Initial commit. Simple synchronous reduce + scan benchmarks.
2020-10-17 08:49:27 -04:00