Commit Graph

30 Commits

Author SHA1 Message Date
Robert Maynard
adaef09b20 Support static builds of nvbench with nvml enabled.
To do this we need to ensure that the nvml init handler is
both contained in the library/executable that uses nvbench.

The original implementation fails since the singleton can be dropped
since it has no usages. So instead we move to a function static
which we ensure will always be used.
2023-11-14 14:08:10 -05:00
Robert Maynard
e47d7ac354 write_git_revision_file must be used in same CMakeLists as consumer (#143)
* write_git_revision_file must be used in same CMakeLists as consumer

So we can't have this in the rapids-cmake init function.

* Fix whitespace damage

---------

Co-authored-by: Michael Schellenberger Costa <miscco@nvidia.com>
2023-10-19 06:52:17 +02:00
Robert Maynard
282cee0f3a NVBench now supports not installing itself 2023-10-17 15:09:39 -04:00
Robert Maynard
0eab168664 Support users which want static builds of nvbench (#140) 2023-10-17 13:55:30 -04:00
Georgy Evtushenko
013d266974 Fix gnu line marker warning 2023-06-28 17:03:31 +04:00
Robert Maynard
b8b5d2904b Handle use case where we are in a conda env but with a static fmt lib 2023-05-31 10:51:40 -04:00
Robert Maynard
b8739b6fe6 Update nvbench default fmt to be built to be 9.1.0
The formatting of `{}` can be incorrect under 7.X when given
doubles and compiled with the latest conda toolchain. While both
fmt 8 and 9 don't show this issue move to the latest version
to leverage all the improvements in fmt 9.

Fixes #103
2022-12-16 15:04:49 -05:00
Vyas Ramasubramani
a5ffad1e8d Downgrade fmt version again. 2022-11-08 11:13:45 -08:00
Vyas Ramasubramani
ae6ede15d6 Fix warning. 2022-11-03 13:59:17 -07:00
Vyas Ramasubramani
a3b729bca8 fmt::memory_buffer is no longer an iterator. 2022-11-03 10:04:02 -07:00
Robert Maynard
8919728d32 Update to latest version of rapids
Also ensure that we don't clobber any existing rapids.cmake file
2022-08-08 13:24:29 -04:00
Jonas Hahnfeld
449cd4e275 Allow using local nlohmann_json installation
Use the nlohmann_json::nlohmann_json if available, otherwise fall
back to add the downloaded headers.

Closes #19
2022-08-05 09:57:56 +02:00
Allison Vacanti
348acbd6eb Use experimental/filesystem on GCC. 2022-01-11 17:19:55 -05:00
Allison Vacanti
288b1564e0 Suppress warnings on MSVC Debug builds.
Also moved the config.cuh.in template into the source directory where
it'll be easier to find.
2021-12-21 19:35:23 -05:00
Allison Vacanti
edf2018fd7 Merge pull request #58 from allisonvacanti/nvbench_executable
Add an `nvbench-ctl` executable.
2021-12-21 12:08:39 -05:00
Allison Vacanti
20522c807d Add an nvbench-ctl executable.
This will provide functionality such as clock locking (--lgm),
persistance mode (--pm), device querying (--list), version checking
(--version), and documentation (--help).

This is possible already with any nvbench executable, but having
one with a reliable name will be helpful for scripting and writing
documentation.
2021-12-21 12:02:07 -05:00
Allison Vacanti
61d094abf1 Add cupti path for ubuntu packages.
Fixes #59
2021-12-20 14:34:12 -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
b948e79cab Add NVML support for persistence mode, locking clocks.
Locking clocks is currently only implemented for Volta+ devices.

Example usage:

my_bench -d [0,1,3] --persistence-mode 1 --lock-gpu-clocks base

See the cli_help.md docs for more info.
2021-12-17 13:59:43 -05:00
Allison Vacanti
d0c90ff920 Build static fmtlib with -fPIC. 2021-12-15 12:54:53 -05:00
Allison Vacanti
7c740975dd Force fmt to build static libs.
Otherwise it shows up in our export set when a parent project enables
BUILD_SHARED_LIBS
2021-10-28 12:39:14 -04:00
Allison Vacanti
f984efdc26 Don't explicitly link with cudart.
This is implicitly added by nvcc, and the explicit setting was breaking
environments where cudart_static is unavailable, e.g. conda.
2021-10-27 12:13:32 -04:00
Allison Vacanti
b2d37c21fd Add export tests. 2021-10-20 14:02:16 -04: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
Robert Maynard
9cfb15be8b document why we are patching json.hpp 2021-07-09 11:28:43 -04:00
Robert Maynard
237363784a Patch nlohmann json to avoid a compiler bug in nvcc 11.0
Fixes #18
2021-07-08 16:52:52 -04:00
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
8afba6c86a Use CMake to generate --help strings from markdown docs. 2021-03-05 16:37:18 -05:00
Allison Vacanti
cf71f6ee15 Update NVBench build system with initial standalone support. 2021-03-03 13:59:29 -05:00