Rename criterion registry to criterion manager

This commit is contained in:
Georgy Evtushenko
2024-01-08 13:15:46 -08:00
parent 4d90c367f5
commit 85ed6f007c
10 changed files with 33 additions and 33 deletions

View File

@@ -62,7 +62,7 @@ public:
// Register the criterion with NVBench:
static bool registered = //
nvbench::criterion_registry::register_criterion("fixed",
nvbench::criterion_manager::register_criterion("fixed",
std::make_unique<fixed_criterion>());
void throughput_bench(nvbench::state &state)

View File

@@ -4,7 +4,7 @@ set(srcs
benchmark_base.cxx
benchmark_manager.cxx
blocking_kernel.cu
criterion_registry.cxx
criterion_manager.cxx
csv_printer.cu
cuda_call.cu
device_info.cu

View File

@@ -30,14 +30,14 @@
namespace nvbench
{
class criterion_registry
class criterion_manager
{
std::unordered_map<std::string, std::unique_ptr<nvbench::stopping_criterion>> m_map;
criterion_registry();
criterion_manager();
public:
static criterion_registry &instance();
static criterion_manager &instance();
static nvbench::stopping_criterion* get(const std::string& name);

View File

@@ -16,27 +16,27 @@
* limitations under the License.
*/
#include <nvbench/criterion_registry.cuh>
#include <nvbench/criterion_manager.cuh>
#include <nvbench/detail/throw.cuh>
namespace nvbench
{
criterion_registry::criterion_registry()
criterion_manager::criterion_manager()
{
m_map.emplace("stdrel", std::make_unique<nvbench::detail::stdrel_criterion>());
m_map.emplace("entropy", std::make_unique<nvbench::detail::entropy_criterion>());
}
criterion_registry &criterion_registry::instance()
criterion_manager &criterion_manager::instance()
{
static criterion_registry registry;
static criterion_manager registry;
return registry;
}
stopping_criterion* criterion_registry::get(const std::string& name)
stopping_criterion* criterion_manager::get(const std::string& name)
{
criterion_registry& registry = instance();
criterion_manager& registry = instance();
auto iter = registry.m_map.find(name);
if (iter == registry.m_map.end())
@@ -46,26 +46,26 @@ stopping_criterion* criterion_registry::get(const std::string& name)
return iter->second.get();
}
bool criterion_registry::register_criterion(std::string name,
std::unique_ptr<stopping_criterion> criterion)
bool criterion_manager::register_criterion(std::string name,
std::unique_ptr<stopping_criterion> criterion)
{
criterion_registry& registry = instance();
criterion_manager& manager = instance();
if (registry.m_map.find(name) != registry.m_map.end())
if (manager.m_map.find(name) != manager.m_map.end())
{
NVBENCH_THROW(std::runtime_error,
"Stopping criterion \"{}\" is already registered.", name);
}
return registry.m_map.emplace(std::move(name), std::move(criterion)).second;
return manager.m_map.emplace(std::move(name), std::move(criterion)).second;
}
nvbench::stopping_criterion::params_description criterion_registry::get_params_description()
nvbench::stopping_criterion::params_description criterion_manager::get_params_description()
{
nvbench::stopping_criterion::params_description desc;
criterion_registry &registry = instance();
for (auto &[criterion_name, criterion] : registry.m_map)
criterion_manager &manager = instance();
for (auto &[criterion_name, criterion] : manager.m_map)
{
for (auto param : criterion->get_params_description())
{

View File

@@ -17,7 +17,7 @@
*/
#include <nvbench/benchmark_base.cuh>
#include <nvbench/criterion_registry.cuh>
#include <nvbench/criterion_manager.cuh>
#include <nvbench/detail/measure_cold.cuh>
#include <nvbench/detail/throw.cuh>
#include <nvbench/device_info.cuh>
@@ -34,7 +34,7 @@ measure_cold_base::measure_cold_base(state &exec_state)
: m_state{exec_state}
, m_launch{m_state.get_cuda_stream()}
, m_criterion_params{exec_state.get_criterion_params()}
, m_stopping_criterion{nvbench::criterion_registry::get(exec_state.get_stopping_criterion())}
, m_stopping_criterion{nvbench::criterion_manager::get(exec_state.get_stopping_criterion())}
, m_run_once{exec_state.get_run_once()}
, m_no_block{exec_state.get_disable_blocking_kernel()}
, m_min_samples{exec_state.get_min_samples()}

View File

@@ -24,7 +24,7 @@
#include <nvbench/callable.cuh>
#include <nvbench/config.cuh>
#include <nvbench/cpu_timer.cuh>
#include <nvbench/criterion_registry.cuh>
#include <nvbench/criterion_manager.cuh>
#include <nvbench/create.cuh>
#include <nvbench/cuda_call.cuh>
#include <nvbench/cuda_stream.cuh>

View File

@@ -21,7 +21,7 @@
#include <nvbench/benchmark_base.cuh>
#include <nvbench/benchmark_manager.cuh>
#include <nvbench/csv_printer.cuh>
#include <nvbench/criterion_registry.cuh>
#include <nvbench/criterion_manager.cuh>
#include <nvbench/git_revision.cuh>
#include <nvbench/json_printer.cuh>
#include <nvbench/markdown_printer.cuh>
@@ -378,7 +378,7 @@ void option_parser::parse_range(option_parser::arg_iterator_t first,
};
const nvbench::stopping_criterion::params_description criterion_params =
nvbench::criterion_registry::get_params_description();
nvbench::criterion_manager::get_params_description();
while (first < last)
{

View File

@@ -4,7 +4,7 @@ set(test_srcs
create.cu
cuda_timer.cu
cpu_timer.cu
criterion_registry.cu
criterion_manager.cu
criterion_params.cu
enum_type_list.cu
entropy_criterion.cu

View File

@@ -16,15 +16,15 @@
* limitations under the License.
*/
#include <nvbench/criterion_registry.cuh>
#include <nvbench/criterion_manager.cuh>
#include <nvbench/types.cuh>
#include "test_asserts.cuh"
void test_standard_criteria_exist()
{
ASSERT(nvbench::criterion_registry::get("stdrel") != nullptr);
ASSERT(nvbench::criterion_registry::get("entropy") != nullptr);
ASSERT(nvbench::criterion_manager::get("stdrel") != nullptr);
ASSERT(nvbench::criterion_manager::get("entropy") != nullptr);
}
class custom_criterion : public nvbench::stopping_criterion
@@ -45,7 +45,7 @@ void test_no_duplicates_are_allowed()
bool exception_triggered = false;
try {
nvbench::stopping_criterion* custom = nvbench::criterion_registry::get("custom");
nvbench::stopping_criterion* custom = nvbench::criterion_manager::get("custom");
} catch(...) {
exception_triggered = true;
}
@@ -53,14 +53,14 @@ void test_no_duplicates_are_allowed()
std::unique_ptr<custom_criterion> custom_ptr = std::make_unique<custom_criterion>();
custom_criterion* custom_raw = custom_ptr.get();
ASSERT(nvbench::criterion_registry::register_criterion("custom", std::move(custom_ptr)));
ASSERT(nvbench::criterion_manager::register_criterion("custom", std::move(custom_ptr)));
nvbench::stopping_criterion* custom = nvbench::criterion_registry::get("custom");
nvbench::stopping_criterion* custom = nvbench::criterion_manager::get("custom");
ASSERT(custom_raw == custom);
exception_triggered = false;
try {
nvbench::criterion_registry::register_criterion("custom", std::make_unique<custom_criterion>());
nvbench::criterion_manager::register_criterion("custom", std::make_unique<custom_criterion>());
} catch(...) {
exception_triggered = true;
}

View File

@@ -16,7 +16,7 @@
* limitations under the License.
*/
#include <nvbench/criterion_registry.cuh>
#include <nvbench/criterion_manager.cuh>
#include <nvbench/types.cuh>
#include "test_asserts.cuh"