summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@online.no>2022-10-03 16:48:19 +0200
committerTor Egge <Tor.Egge@online.no>2022-10-03 16:48:19 +0200
commitff3abaf111d6428113797f1bc9a03373e21d72da (patch)
tree232fbf88a0eb99877d6269bf6fafe43fbcf5270d
parent73c11ef2eb40d941593d1616255f44cd66dfefd0 (diff)
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();