Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions README.md

Large diffs are not rendered by default.

11 changes: 7 additions & 4 deletions benchmarks/dynamic_map/contains_bench.cu
Original file line number Diff line number Diff line change
Expand Up @@ -62,9 +62,12 @@ std::enable_if_t<(sizeof(Key) != sizeof(Value)), void> dynamic_map_contains(
state.skip("Key should be the same type as Value.");
}

// Robin Hood (hard-wired into static_map) requires a single-CAS slot, so the shared
// defaults::KEY_TYPE_RANGE x VALUE_TYPE_RANGE cross product cannot be used here: the padded
// int32/int64 and int64/int32 combos (12 bytes) are unsupported. Restricted to int32/int32 (8B).
NVBENCH_BENCH_TYPES(dynamic_map_contains,
NVBENCH_TYPE_AXES(defaults::KEY_TYPE_RANGE,
defaults::VALUE_TYPE_RANGE,
NVBENCH_TYPE_AXES(nvbench::type_list<nvbench::int32_t>,
nvbench::type_list<nvbench::int32_t>,
nvbench::type_list<distribution::unique>))
.set_name("dynamic_map_contains_unique_capacity")
.set_type_axes_names({"Key", "Value", "Distribution"})
Expand All @@ -73,8 +76,8 @@ NVBENCH_BENCH_TYPES(dynamic_map_contains,
.add_float64_axis("MatchingRate", {defaults::MATCHING_RATE});

NVBENCH_BENCH_TYPES(dynamic_map_contains,
NVBENCH_TYPE_AXES(defaults::KEY_TYPE_RANGE,
defaults::VALUE_TYPE_RANGE,
NVBENCH_TYPE_AXES(nvbench::type_list<nvbench::int32_t>,
nvbench::type_list<nvbench::int32_t>,
nvbench::type_list<distribution::unique>))
.set_name("dynamic_map_contains_unique_matching_rate")
.set_type_axes_names({"Key", "Value", "Distribution"})
Expand Down
11 changes: 7 additions & 4 deletions benchmarks/dynamic_map/erase_bench.cu
Original file line number Diff line number Diff line change
Expand Up @@ -64,9 +64,12 @@ std::enable_if_t<(sizeof(Key) != sizeof(Value)), void> dynamic_map_erase(
state.skip("Key should be the same type as Value.");
}

// Robin Hood (hard-wired into static_map) requires a single-CAS slot, so the shared
// defaults::KEY_TYPE_RANGE x VALUE_TYPE_RANGE cross product cannot be used here: the padded
// int32/int64 and int64/int32 combos (12 bytes) are unsupported. Restricted to int32/int32 (8B).
NVBENCH_BENCH_TYPES(dynamic_map_erase,
NVBENCH_TYPE_AXES(defaults::KEY_TYPE_RANGE,
defaults::VALUE_TYPE_RANGE,
NVBENCH_TYPE_AXES(nvbench::type_list<nvbench::int32_t>,
nvbench::type_list<nvbench::int32_t>,
nvbench::type_list<distribution::unique>))
.set_name("dynamic_map_erase_unique_capacity")
.set_type_axes_names({"Key", "Value", "Distribution"})
Expand All @@ -75,8 +78,8 @@ NVBENCH_BENCH_TYPES(dynamic_map_erase,
.add_float64_axis("MatchingRate", {defaults::MATCHING_RATE});

NVBENCH_BENCH_TYPES(dynamic_map_erase,
NVBENCH_TYPE_AXES(defaults::KEY_TYPE_RANGE,
defaults::VALUE_TYPE_RANGE,
NVBENCH_TYPE_AXES(nvbench::type_list<nvbench::int32_t>,
nvbench::type_list<nvbench::int32_t>,
nvbench::type_list<distribution::unique>))
.set_name("dynamic_map_erase_unique_matching_rate")
.set_type_axes_names({"Key", "Value", "Distribution"})
Expand Down
11 changes: 7 additions & 4 deletions benchmarks/dynamic_map/find_bench.cu
Original file line number Diff line number Diff line change
Expand Up @@ -62,9 +62,12 @@ std::enable_if_t<(sizeof(Key) != sizeof(Value)), void> dynamic_map_find(
state.skip("Key should be the same type as Value.");
}

// Robin Hood (hard-wired into static_map) requires a single-CAS slot, so the shared
// defaults::KEY_TYPE_RANGE x VALUE_TYPE_RANGE cross product cannot be used here: the padded
// int32/int64 and int64/int32 combos (12 bytes) are unsupported. Restricted to int32/int32 (8B).
NVBENCH_BENCH_TYPES(dynamic_map_find,
NVBENCH_TYPE_AXES(defaults::KEY_TYPE_RANGE,
defaults::VALUE_TYPE_RANGE,
NVBENCH_TYPE_AXES(nvbench::type_list<nvbench::int32_t>,
nvbench::type_list<nvbench::int32_t>,
nvbench::type_list<distribution::unique>))
.set_name("dynamic_map_find_unique_capacity")
.set_type_axes_names({"Key", "Value", "Distribution"})
Expand All @@ -73,8 +76,8 @@ NVBENCH_BENCH_TYPES(dynamic_map_find,
.add_float64_axis("MatchingRate", {defaults::MATCHING_RATE});

NVBENCH_BENCH_TYPES(dynamic_map_find,
NVBENCH_TYPE_AXES(defaults::KEY_TYPE_RANGE,
defaults::VALUE_TYPE_RANGE,
NVBENCH_TYPE_AXES(nvbench::type_list<nvbench::int32_t>,
nvbench::type_list<nvbench::int32_t>,
nvbench::type_list<distribution::unique>))
.set_name("dynamic_map_find_unique_matching_rate")
.set_type_axes_names({"Key", "Value", "Distribution"})
Expand Down
15 changes: 9 additions & 6 deletions benchmarks/dynamic_map/insert_bench.cu
Original file line number Diff line number Diff line change
Expand Up @@ -64,9 +64,12 @@ std::enable_if_t<(sizeof(Key) != sizeof(Value)), void> dynamic_map_insert(
state.skip("Key should be the same type as Value.");
}

// Robin Hood (hard-wired into static_map) requires a single-CAS slot, so the shared
// defaults::KEY_TYPE_RANGE x VALUE_TYPE_RANGE cross product cannot be used here: the padded
// int32/int64 and int64/int32 combos (12 bytes) are unsupported. Restricted to int32/int32 (8B).
NVBENCH_BENCH_TYPES(dynamic_map_insert,
NVBENCH_TYPE_AXES(defaults::KEY_TYPE_RANGE,
defaults::VALUE_TYPE_RANGE,
NVBENCH_TYPE_AXES(nvbench::type_list<nvbench::int32_t>,
nvbench::type_list<nvbench::int32_t>,
nvbench::type_list<distribution::unique>))
.set_name("dynamic_map_insert_unique_capacity")
.set_type_axes_names({"Key", "Value", "Distribution"})
Expand All @@ -75,8 +78,8 @@ NVBENCH_BENCH_TYPES(dynamic_map_insert,
.add_int64_axis("BatchSize", {defaults::BATCH_SIZE});

NVBENCH_BENCH_TYPES(dynamic_map_insert,
NVBENCH_TYPE_AXES(defaults::KEY_TYPE_RANGE,
defaults::VALUE_TYPE_RANGE,
NVBENCH_TYPE_AXES(nvbench::type_list<nvbench::int32_t>,
nvbench::type_list<nvbench::int32_t>,
nvbench::type_list<distribution::uniform>))
.set_name("dynamic_map_insert_uniform_multiplicity")
.set_type_axes_names({"Key", "Value", "Distribution"})
Expand All @@ -86,8 +89,8 @@ NVBENCH_BENCH_TYPES(dynamic_map_insert,
.add_int64_axis("Multiplicity", defaults::MULTIPLICITY_RANGE);

NVBENCH_BENCH_TYPES(dynamic_map_insert,
NVBENCH_TYPE_AXES(defaults::KEY_TYPE_RANGE,
defaults::VALUE_TYPE_RANGE,
NVBENCH_TYPE_AXES(nvbench::type_list<nvbench::int32_t>,
nvbench::type_list<nvbench::int32_t>,
nvbench::type_list<distribution::gaussian>))
.set_name("dynamic_map_insert_gaussian_skew")
.set_type_axes_names({"Key", "Value", "Distribution"})
Expand Down
11 changes: 7 additions & 4 deletions benchmarks/dynamic_map/retrieve_all_bench.cu
Original file line number Diff line number Diff line change
Expand Up @@ -60,18 +60,21 @@ std::enable_if_t<(sizeof(Key) != sizeof(Value)), void> dynamic_map_retrieve_all(
state.skip("Key should be the same type as Value.");
}

// Robin Hood (hard-wired into static_map) requires a single-CAS slot, so the shared
// defaults::KEY_TYPE_RANGE x VALUE_TYPE_RANGE cross product cannot be used here: the padded
// int32/int64 and int64/int32 combos (12 bytes) are unsupported. Restricted to int32/int32 (8B).
NVBENCH_BENCH_TYPES(dynamic_map_retrieve_all,
NVBENCH_TYPE_AXES(defaults::KEY_TYPE_RANGE,
defaults::VALUE_TYPE_RANGE,
NVBENCH_TYPE_AXES(nvbench::type_list<nvbench::int32_t>,
nvbench::type_list<nvbench::int32_t>,
nvbench::type_list<distribution::unique>))
.set_name("dynamic_map_retrieve_all_unique_capacity")
.set_type_axes_names({"Key", "Value", "Distribution"})
.add_int64_axis("NumInputs", defaults::N_RANGE)
.add_int64_axis("InitSize", {defaults::INITIAL_SIZE});

NVBENCH_BENCH_TYPES(dynamic_map_retrieve_all,
NVBENCH_TYPE_AXES(defaults::KEY_TYPE_RANGE,
defaults::VALUE_TYPE_RANGE,
NVBENCH_TYPE_AXES(nvbench::type_list<nvbench::int32_t>,
nvbench::type_list<nvbench::int32_t>,
nvbench::type_list<distribution::unique>))
.set_name("dynamic_map_retrieve_all_fixed_capacity")
.set_type_axes_names({"Key", "Value", "Distribution"})
Expand Down
15 changes: 9 additions & 6 deletions benchmarks/static_map/contains_bench.cu
Original file line number Diff line number Diff line change
Expand Up @@ -63,9 +63,12 @@ std::enable_if_t<(sizeof(Key) != sizeof(Value)), void> static_map_contains(
state.skip("Key should be the same type as Value.");
}

// Robin Hood (hard-wired into static_map) requires a single-CAS slot, so the shared
// defaults::KEY_TYPE_RANGE x VALUE_TYPE_RANGE cross product cannot be used here: the padded
// int32/int64 and int64/int32 combos (12 bytes) are unsupported. Restricted to int32/int32 (8B).
NVBENCH_BENCH_TYPES(static_map_contains,
NVBENCH_TYPE_AXES(defaults::KEY_TYPE_RANGE,
defaults::VALUE_TYPE_RANGE,
NVBENCH_TYPE_AXES(nvbench::type_list<nvbench::int32_t>,
nvbench::type_list<nvbench::int32_t>,
nvbench::type_list<distribution::unique>))
.set_name("static_map_contains_unique_capacity")
.set_type_axes_names({"Key", "Value", "Distribution"})
Expand All @@ -74,8 +77,8 @@ NVBENCH_BENCH_TYPES(static_map_contains,
.add_float64_axis("MatchingRate", {defaults::MATCHING_RATE});

NVBENCH_BENCH_TYPES(static_map_contains,
NVBENCH_TYPE_AXES(defaults::KEY_TYPE_RANGE,
defaults::VALUE_TYPE_RANGE,
NVBENCH_TYPE_AXES(nvbench::type_list<nvbench::int32_t>,
nvbench::type_list<nvbench::int32_t>,
nvbench::type_list<distribution::unique>))
.set_name("static_map_contains_unique_occupancy")
.set_type_axes_names({"Key", "Value", "Distribution"})
Expand All @@ -84,8 +87,8 @@ NVBENCH_BENCH_TYPES(static_map_contains,
.add_float64_axis("MatchingRate", {defaults::MATCHING_RATE});

NVBENCH_BENCH_TYPES(static_map_contains,
NVBENCH_TYPE_AXES(defaults::KEY_TYPE_RANGE,
defaults::VALUE_TYPE_RANGE,
NVBENCH_TYPE_AXES(nvbench::type_list<nvbench::int32_t>,
nvbench::type_list<nvbench::int32_t>,
nvbench::type_list<distribution::unique>))
.set_name("static_map_contains_unique_matching_rate")
.set_type_axes_names({"Key", "Value", "Distribution"})
Expand Down
15 changes: 9 additions & 6 deletions benchmarks/static_map/erase_bench.cu
Original file line number Diff line number Diff line change
Expand Up @@ -66,9 +66,12 @@ std::enable_if_t<(sizeof(Key) != sizeof(Value)), void> static_map_erase(
state.skip("Key should be the same type as Value.");
}

// Robin Hood (hard-wired into static_map) requires a single-CAS slot, so the shared
// defaults::KEY_TYPE_RANGE x VALUE_TYPE_RANGE cross product cannot be used here: the padded
// int32/int64 and int64/int32 combos (12 bytes) are unsupported. Restricted to int32/int32 (8B).
NVBENCH_BENCH_TYPES(static_map_erase,
NVBENCH_TYPE_AXES(defaults::KEY_TYPE_RANGE,
defaults::VALUE_TYPE_RANGE,
NVBENCH_TYPE_AXES(nvbench::type_list<nvbench::int32_t>,
nvbench::type_list<nvbench::int32_t>,
nvbench::type_list<distribution::unique>))
.set_name("static_map_erase_unique_capacity")
.set_type_axes_names({"Key", "Value", "Distribution"})
Expand All @@ -77,8 +80,8 @@ NVBENCH_BENCH_TYPES(static_map_erase,
.add_float64_axis("MatchingRate", {defaults::MATCHING_RATE});

NVBENCH_BENCH_TYPES(static_map_erase,
NVBENCH_TYPE_AXES(defaults::KEY_TYPE_RANGE,
defaults::VALUE_TYPE_RANGE,
NVBENCH_TYPE_AXES(nvbench::type_list<nvbench::int32_t>,
nvbench::type_list<nvbench::int32_t>,
nvbench::type_list<distribution::unique>))
.set_name("static_map_erase_unique_occupancy")
.set_type_axes_names({"Key", "Value", "Distribution"})
Expand All @@ -87,8 +90,8 @@ NVBENCH_BENCH_TYPES(static_map_erase,
.add_float64_axis("MatchingRate", {defaults::MATCHING_RATE});

NVBENCH_BENCH_TYPES(static_map_erase,
NVBENCH_TYPE_AXES(defaults::KEY_TYPE_RANGE,
defaults::VALUE_TYPE_RANGE,
NVBENCH_TYPE_AXES(nvbench::type_list<nvbench::int32_t>,
nvbench::type_list<nvbench::int32_t>,
nvbench::type_list<distribution::unique>))
.set_name("static_map_erase_unique_matching_rate")
.set_type_axes_names({"Key", "Value", "Distribution"})
Expand Down
15 changes: 9 additions & 6 deletions benchmarks/static_map/find_bench.cu
Original file line number Diff line number Diff line change
Expand Up @@ -63,9 +63,12 @@ std::enable_if_t<(sizeof(Key) != sizeof(Value)), void> static_map_find(
state.skip("Key should be the same type as Value.");
}

// Robin Hood (hard-wired into static_map) requires a single-CAS slot, so the shared
// defaults::KEY_TYPE_RANGE x VALUE_TYPE_RANGE cross product cannot be used here: the padded
// int32/int64 and int64/int32 combos (12 bytes) are unsupported. Restricted to int32/int32 (8B).
NVBENCH_BENCH_TYPES(static_map_find,
NVBENCH_TYPE_AXES(defaults::KEY_TYPE_RANGE,
defaults::VALUE_TYPE_RANGE,
NVBENCH_TYPE_AXES(nvbench::type_list<nvbench::int32_t>,
nvbench::type_list<nvbench::int32_t>,
nvbench::type_list<distribution::unique>))
.set_name("static_map_find_unique_capacity")
.set_type_axes_names({"Key", "Value", "Distribution"})
Expand All @@ -74,8 +77,8 @@ NVBENCH_BENCH_TYPES(static_map_find,
.add_float64_axis("MatchingRate", {defaults::MATCHING_RATE});

NVBENCH_BENCH_TYPES(static_map_find,
NVBENCH_TYPE_AXES(defaults::KEY_TYPE_RANGE,
defaults::VALUE_TYPE_RANGE,
NVBENCH_TYPE_AXES(nvbench::type_list<nvbench::int32_t>,
nvbench::type_list<nvbench::int32_t>,
nvbench::type_list<distribution::unique>))
.set_name("static_map_find_unique_occupancy")
.set_type_axes_names({"Key", "Value", "Distribution"})
Expand All @@ -84,8 +87,8 @@ NVBENCH_BENCH_TYPES(static_map_find,
.add_float64_axis("MatchingRate", {defaults::MATCHING_RATE});

NVBENCH_BENCH_TYPES(static_map_find,
NVBENCH_TYPE_AXES(defaults::KEY_TYPE_RANGE,
defaults::VALUE_TYPE_RANGE,
NVBENCH_TYPE_AXES(nvbench::type_list<nvbench::int32_t>,
nvbench::type_list<nvbench::int32_t>,
nvbench::type_list<distribution::unique>))
.set_name("static_map_find_unique_matching_rate")
.set_type_axes_names({"Key", "Value", "Distribution"})
Expand Down
19 changes: 11 additions & 8 deletions benchmarks/static_map/insert_bench.cu
Original file line number Diff line number Diff line change
Expand Up @@ -59,27 +59,30 @@ std::enable_if_t<(sizeof(Key) != sizeof(Value)), void> static_map_insert(
state.skip("Key should be the same type as Value.");
}

// Robin Hood (hard-wired into static_map) requires a single-CAS slot, so the shared
// defaults::KEY_TYPE_RANGE x VALUE_TYPE_RANGE cross product cannot be used here: the padded
// int32/int64 and int64/int32 combos (12 bytes) are unsupported. Restricted to int32/int32 (8B).
NVBENCH_BENCH_TYPES(static_map_insert,
NVBENCH_TYPE_AXES(defaults::KEY_TYPE_RANGE,
defaults::VALUE_TYPE_RANGE,
NVBENCH_TYPE_AXES(nvbench::type_list<nvbench::int32_t>,
nvbench::type_list<nvbench::int32_t>,
nvbench::type_list<distribution::unique>))
.set_name("static_map_insert_unique_capacity")
.set_type_axes_names({"Key", "Value", "Distribution"})
.add_int64_axis("NumInputs", defaults::N_RANGE_CACHE)
.add_float64_axis("Occupancy", {defaults::OCCUPANCY});

NVBENCH_BENCH_TYPES(static_map_insert,
NVBENCH_TYPE_AXES(defaults::KEY_TYPE_RANGE,
defaults::VALUE_TYPE_RANGE,
NVBENCH_TYPE_AXES(nvbench::type_list<nvbench::int32_t>,
nvbench::type_list<nvbench::int32_t>,
nvbench::type_list<distribution::unique>))
.set_name("static_map_insert_unique_occupancy")
.set_type_axes_names({"Key", "Value", "Distribution"})
.add_int64_axis("NumInputs", {defaults::N})
.add_float64_axis("Occupancy", defaults::OCCUPANCY_RANGE);

NVBENCH_BENCH_TYPES(static_map_insert,
NVBENCH_TYPE_AXES(defaults::KEY_TYPE_RANGE,
defaults::VALUE_TYPE_RANGE,
NVBENCH_TYPE_AXES(nvbench::type_list<nvbench::int32_t>,
nvbench::type_list<nvbench::int32_t>,
nvbench::type_list<distribution::uniform>))
.set_name("static_map_insert_uniform_multiplicity")
.set_type_axes_names({"Key", "Value", "Distribution"})
Expand All @@ -88,8 +91,8 @@ NVBENCH_BENCH_TYPES(static_map_insert,
.add_int64_axis("Multiplicity", defaults::MULTIPLICITY_RANGE);

NVBENCH_BENCH_TYPES(static_map_insert,
NVBENCH_TYPE_AXES(defaults::KEY_TYPE_RANGE,
defaults::VALUE_TYPE_RANGE,
NVBENCH_TYPE_AXES(nvbench::type_list<nvbench::int32_t>,
nvbench::type_list<nvbench::int32_t>,
nvbench::type_list<distribution::gaussian>))
.set_name("static_map_insert_gaussian_skew")
.set_type_axes_names({"Key", "Value", "Distribution"})
Expand Down
Loading
Loading