aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib/src/tests/tensor
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@online.no>2023-06-26 14:01:55 +0200
committerTor Egge <Tor.Egge@online.no>2023-06-26 14:01:55 +0200
commitb0eda0e4a90d6abb9a8a7ce7831dee4cf19a2f3e (patch)
tree7b1dc6109bfda259c5f523514ebc66174be93e22 /searchlib/src/tests/tensor
parent0c341f8ed39b3edcd1938d964cbdf9ce7c179411 (diff)
Cap number of entries in a dense tensor store buffer to avoid very
large buffers.
Diffstat (limited to 'searchlib/src/tests/tensor')
-rw-r--r--searchlib/src/tests/tensor/dense_tensor_store/dense_tensor_store_test.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/searchlib/src/tests/tensor/dense_tensor_store/dense_tensor_store_test.cpp b/searchlib/src/tests/tensor/dense_tensor_store/dense_tensor_store_test.cpp
index 26ef57aab65..87420e8939f 100644
--- a/searchlib/src/tests/tensor/dense_tensor_store/dense_tensor_store_test.cpp
+++ b/searchlib/src/tests/tensor/dense_tensor_store/dense_tensor_store_test.cpp
@@ -9,6 +9,7 @@ LOG_SETUP("dense_tensor_store_test");
#include <vespa/eval/eval/value.h>
#include <vespa/eval/eval/value_type.h>
#include <vespa/eval/eval/test/value_compare.h>
+#include <vespa/vespalib/util/size_literals.h>
using search::tensor::DenseTensorStore;
using vespalib::eval::SimpleValue;
@@ -90,5 +91,26 @@ TEST("require that array size is calculated correctly")
TEST_DO(assertArraySize("tensor<int8>(x[65])", 96));
}
+void
+assert_max_buffer_entries(const vespalib::string& tensor_type, uint32_t exp_entries)
+{
+ Fixture f(tensor_type);
+ EXPECT_EQUAL(exp_entries, f.store.get_max_buffer_entries());
+}
+
+TEST("require that max entries is calculated correctly")
+{
+ TEST_DO(assert_max_buffer_entries("tensor(x[1])", 1_Mi));
+ TEST_DO(assert_max_buffer_entries("tensor(x[32])", 1_Mi));
+ TEST_DO(assert_max_buffer_entries("tensor(x[64])", 512_Ki));
+ TEST_DO(assert_max_buffer_entries("tensor(x[1024])", 32_Ki));
+ TEST_DO(assert_max_buffer_entries("tensor(x[1024])", 32_Ki));
+ TEST_DO(assert_max_buffer_entries("tensor(x[16777216])", 2));
+ TEST_DO(assert_max_buffer_entries("tensor(x[33554428])", 2));
+ TEST_DO(assert_max_buffer_entries("tensor(x[33554429])", 1));
+ TEST_DO(assert_max_buffer_entries("tensor(x[33554432])", 1));
+ TEST_DO(assert_max_buffer_entries("tensor(x[303554432])", 1));
+}
+
TEST_MAIN() { TEST_RUN_ALL(); }