summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeir Storli <geirst@yahooinc.com>2022-10-03 17:24:16 +0200
committerGitHub <noreply@github.com>2022-10-03 17:24:16 +0200
commit1fafdfd0af3631cb38a6e2e880ea9494bdf70ff4 (patch)
tree32c329a6a27d25900c79e495035df7bc63e3b442
parent11b8f06e0fd1c66c6f099e93737434e0715e2261 (diff)
parentff3abaf111d6428113797f1bc9a03373e21d72da (diff)
Merge pull request #24292 from vespa-engine/toregge/use-array-store-allocate-in-tensor-buffer-store-store-tensor
Use ArrayStore::allocate in TensorBufferStore::store_tensor.
-rw-r--r--searchlib/src/vespa/searchlib/tensor/tensor_buffer_store.cpp10
-rw-r--r--searchlib/src/vespa/searchlib/tensor/tensor_buffer_store.h1
2 files changed, 5 insertions, 6 deletions
diff --git a/searchlib/src/vespa/searchlib/tensor/tensor_buffer_store.cpp b/searchlib/src/vespa/searchlib/tensor/tensor_buffer_store.cpp
index 6c1b3bbd1ee..34454e9f780 100644
--- a/searchlib/src/vespa/searchlib/tensor/tensor_buffer_store.cpp
+++ b/searchlib/src/vespa/searchlib/tensor/tensor_buffer_store.cpp
@@ -29,8 +29,7 @@ TensorBufferStore::TensorBufferStore(const ValueType& tensor_type, std::shared_p
_array_store(ArrayStoreType::optimizedConfigForHugePage(max_small_subspaces_type_id,
TensorBufferTypeMapper(max_small_subspaces_type_id, &_ops),
MemoryAllocator::HUGEPAGE_SIZE, 4_Ki, 8_Ki, ALLOC_GROW_FACTOR),
- std::move(allocator), TensorBufferTypeMapper(max_small_subspaces_type_id, &_ops)),
- _add_buffer()
+ std::move(allocator), TensorBufferTypeMapper(max_small_subspaces_type_id, &_ops))
{
}
@@ -60,9 +59,10 @@ TensorBufferStore::store_tensor(const Value &tensor)
{
uint32_t num_subspaces = tensor.index().size();
auto array_size = _ops.get_array_size(num_subspaces);
- _add_buffer.resize(array_size);
- _ops.store_tensor(_add_buffer, tensor);
- return _array_store.add(_add_buffer);
+ auto ref = _array_store.allocate(array_size);
+ auto buf = _array_store.get_writable(ref);
+ _ops.store_tensor(buf, tensor);
+ return ref;
}
EntryRef
diff --git a/searchlib/src/vespa/searchlib/tensor/tensor_buffer_store.h b/searchlib/src/vespa/searchlib/tensor/tensor_buffer_store.h
index 14572eb07dc..18b98efa8fa 100644
--- a/searchlib/src/vespa/searchlib/tensor/tensor_buffer_store.h
+++ b/searchlib/src/vespa/searchlib/tensor/tensor_buffer_store.h
@@ -23,7 +23,6 @@ class TensorBufferStore : public TensorStore
vespalib::eval::ValueType _tensor_type;
TensorBufferOperations _ops;
ArrayStoreType _array_store;
- std::vector<char> _add_buffer;
public:
TensorBufferStore(const vespalib::eval::ValueType& tensor_type, std::shared_ptr<vespalib::alloc::MemoryAllocator> allocator, uint32_t max_small_subspaces_type_id);
~TensorBufferStore();