diff options
author | Arne Juul <arnej@verizonmedia.com> | 2020-12-03 11:16:34 +0000 |
---|---|---|
committer | Arne Juul <arnej@verizonmedia.com> | 2020-12-03 11:23:25 +0000 |
commit | c3fef6299473204c6e5b0ea1e020ce9c17621b2c (patch) | |
tree | a9f284d88fc995eb83e49679048b8c6750d56f58 /searchlib | |
parent | 957237a4e2859bda5ccaf536c0553092f0edde76 (diff) |
extract_dense_view can just return the cells reference
Diffstat (limited to 'searchlib')
7 files changed, 14 insertions, 23 deletions
diff --git a/searchlib/src/vespa/searchlib/tensor/dense_tensor_attribute.cpp b/searchlib/src/vespa/searchlib/tensor/dense_tensor_attribute.cpp index 8b27dcc1cd4..9754307456e 100644 --- a/searchlib/src/vespa/searchlib/tensor/dense_tensor_attribute.cpp +++ b/searchlib/src/vespa/searchlib/tensor/dense_tensor_attribute.cpp @@ -19,7 +19,6 @@ using search::attribute::LoadUtils; using vespalib::eval::Value; using vespalib::eval::ValueType; using vespalib::slime::ObjectInserter; -using vespalib::tensor::MutableDenseTensorView; namespace search::tensor { @@ -173,14 +172,14 @@ DenseTensorAttribute::getTensor(DocId docId) const return _denseTensorStore.getTensor(ref); } -void -DenseTensorAttribute::extract_dense_view(DocId docId, MutableDenseTensorView &tensor) const +vespalib::eval::TypedCells +DenseTensorAttribute::extract_dense_view(DocId docId) const { EntryRef ref; if (docId < getCommittedDocIdLimit()) { ref = _refVector[docId]; } - _denseTensorStore.getTensor(ref, tensor); + return _denseTensorStore.get_typed_cells(ref); } bool diff --git a/searchlib/src/vespa/searchlib/tensor/dense_tensor_attribute.h b/searchlib/src/vespa/searchlib/tensor/dense_tensor_attribute.h index e06bbf331ac..1a10c887dc2 100644 --- a/searchlib/src/vespa/searchlib/tensor/dense_tensor_attribute.h +++ b/searchlib/src/vespa/searchlib/tensor/dense_tensor_attribute.h @@ -8,8 +8,6 @@ #include "tensor_attribute.h" #include <memory> -namespace vespalib::tensor { class MutableDenseTensorView; } - namespace search::tensor { class NearestNeighborIndex; @@ -37,7 +35,7 @@ public: std::unique_ptr<PrepareResult> prepare_set_tensor(DocId docid, const vespalib::eval::Value& tensor) const override; void complete_set_tensor(DocId docid, const vespalib::eval::Value& tensor, std::unique_ptr<PrepareResult> prepare_result) override; std::unique_ptr<vespalib::eval::Value> getTensor(DocId docId) const override; - void extract_dense_view(DocId docId, vespalib::tensor::MutableDenseTensorView &tensor) const override; + vespalib::eval::TypedCells extract_dense_view(DocId docId) const override; bool supports_extract_dense_view() const override { return true; } bool onLoad() override; std::unique_ptr<AttributeSaver> onInitSave(vespalib::stringref fileName) override; diff --git a/searchlib/src/vespa/searchlib/tensor/i_tensor_attribute.h b/searchlib/src/vespa/searchlib/tensor/i_tensor_attribute.h index c962e919d95..dc0698a5904 100644 --- a/searchlib/src/vespa/searchlib/tensor/i_tensor_attribute.h +++ b/searchlib/src/vespa/searchlib/tensor/i_tensor_attribute.h @@ -3,10 +3,8 @@ #pragma once #include <memory> +#include <vespa/eval/eval/typed_cells.h> -namespace vespalib::tensor { -class MutableDenseTensorView; -} namespace vespalib::eval { class ValueType; struct Value; } namespace vespalib::slime { struct Inserter; } @@ -21,7 +19,7 @@ public: virtual ~ITensorAttribute() {} virtual std::unique_ptr<vespalib::eval::Value> getTensor(uint32_t docId) const = 0; virtual std::unique_ptr<vespalib::eval::Value> getEmptyTensor() const = 0; - virtual void extract_dense_view(uint32_t docid, vespalib::tensor::MutableDenseTensorView& tensor) const = 0; + virtual vespalib::eval::TypedCells extract_dense_view(uint32_t docid) const = 0; virtual const vespalib::eval::Value& get_tensor_ref(uint32_t docid) const = 0; virtual bool supports_extract_dense_view() const = 0; virtual bool supports_get_tensor_ref() const = 0; diff --git a/searchlib/src/vespa/searchlib/tensor/imported_tensor_attribute_vector_read_guard.cpp b/searchlib/src/vespa/searchlib/tensor/imported_tensor_attribute_vector_read_guard.cpp index 6a0dbfb9f48..a9f4951fdea 100644 --- a/searchlib/src/vespa/searchlib/tensor/imported_tensor_attribute_vector_read_guard.cpp +++ b/searchlib/src/vespa/searchlib/tensor/imported_tensor_attribute_vector_read_guard.cpp @@ -48,10 +48,10 @@ ImportedTensorAttributeVectorReadGuard::getEmptyTensor() const return _target_tensor_attribute.getEmptyTensor(); } -void -ImportedTensorAttributeVectorReadGuard::extract_dense_view(uint32_t docid, vespalib::tensor::MutableDenseTensorView& tensor) const +vespalib::eval::TypedCells +ImportedTensorAttributeVectorReadGuard::extract_dense_view(uint32_t docid) const { - _target_tensor_attribute.extract_dense_view(getTargetLid(docid), tensor); + return _target_tensor_attribute.extract_dense_view(getTargetLid(docid)); } const vespalib::eval::Value& diff --git a/searchlib/src/vespa/searchlib/tensor/imported_tensor_attribute_vector_read_guard.h b/searchlib/src/vespa/searchlib/tensor/imported_tensor_attribute_vector_read_guard.h index a3ffc27b153..371ac72e5f3 100644 --- a/searchlib/src/vespa/searchlib/tensor/imported_tensor_attribute_vector_read_guard.h +++ b/searchlib/src/vespa/searchlib/tensor/imported_tensor_attribute_vector_read_guard.h @@ -32,7 +32,7 @@ public: std::unique_ptr<vespalib::eval::Value> getTensor(uint32_t docId) const override; std::unique_ptr<vespalib::eval::Value> getEmptyTensor() const override; - void extract_dense_view(uint32_t docid, vespalib::tensor::MutableDenseTensorView& tensor) const override; + vespalib::eval::TypedCells extract_dense_view(uint32_t docid) const override; const vespalib::eval::Value& get_tensor_ref(uint32_t docid) const override; bool supports_extract_dense_view() const override { return _target_tensor_attribute.supports_extract_dense_view(); } bool supports_get_tensor_ref() const override { return _target_tensor_attribute.supports_get_tensor_ref(); } diff --git a/searchlib/src/vespa/searchlib/tensor/tensor_attribute.cpp b/searchlib/src/vespa/searchlib/tensor/tensor_attribute.cpp index 0748329694c..0875dce23f3 100644 --- a/searchlib/src/vespa/searchlib/tensor/tensor_attribute.cpp +++ b/searchlib/src/vespa/searchlib/tensor/tensor_attribute.cpp @@ -186,20 +186,16 @@ TensorAttribute::getEmptyTensor() const return EngineOrFactory::get().copy(*_emptyTensor); } -void -TensorAttribute::extract_dense_view(uint32_t docid, vespalib::tensor::MutableDenseTensorView& tensor) const +vespalib::eval::TypedCells +TensorAttribute::extract_dense_view(uint32_t /*docid*/) const { - (void) docid; - (void) tensor; notImplemented(); } const vespalib::eval::Value& -TensorAttribute::get_tensor_ref(uint32_t docid) const +TensorAttribute::get_tensor_ref(uint32_t /*docid*/) const { - (void) docid; notImplemented(); - abort(); // Needed to avoid compile error } const vespalib::eval::ValueType & diff --git a/searchlib/src/vespa/searchlib/tensor/tensor_attribute.h b/searchlib/src/vespa/searchlib/tensor/tensor_attribute.h index b88ffcf0f2c..2454889a2dd 100644 --- a/searchlib/src/vespa/searchlib/tensor/tensor_attribute.h +++ b/searchlib/src/vespa/searchlib/tensor/tensor_attribute.h @@ -47,7 +47,7 @@ public: void onGenerationChange(generation_t generation) override; bool addDoc(DocId &docId) override; std::unique_ptr<vespalib::eval::Value> getEmptyTensor() const override; - void extract_dense_view(uint32_t docid, vespalib::tensor::MutableDenseTensorView& tensor) const override; + vespalib::eval::TypedCells extract_dense_view(uint32_t docid) const override; const vespalib::eval::Value& get_tensor_ref(uint32_t docid) const override; bool supports_extract_dense_view() const override { return false; } bool supports_get_tensor_ref() const override { return false; } |