diff options
author | Håvard Pettersen <havardpe@oath.com> | 2020-04-03 09:36:21 +0000 |
---|---|---|
committer | Håvard Pettersen <havardpe@oath.com> | 2020-04-03 09:38:00 +0000 |
commit | 16aa15bdc65d7bf6813fc2452529fc778ff61f95 (patch) | |
tree | a297cfb53ece6f02e3cad3f7607827f8b8628aab /eval | |
parent | 092186debc2bb188b6c13b7a2d438225bd94afa5 (diff) |
added skeleton for lambda peek optimizer
Diffstat (limited to 'eval')
4 files changed, 34 insertions, 0 deletions
diff --git a/eval/src/vespa/eval/tensor/default_tensor_engine.cpp b/eval/src/vespa/eval/tensor/default_tensor_engine.cpp index a9e1ad84eb7..b16241fe5e5 100644 --- a/eval/src/vespa/eval/tensor/default_tensor_engine.cpp +++ b/eval/src/vespa/eval/tensor/default_tensor_engine.cpp @@ -14,6 +14,7 @@ #include "dense/dense_fast_rename_optimizer.h" #include "dense/dense_add_dimension_optimizer.h" #include "dense/dense_remove_dimension_optimizer.h" +#include "dense/dense_lambda_peek_optimizer.h" #include "dense/dense_inplace_join_function.h" #include "dense/dense_inplace_map_function.h" #include "dense/vector_from_doubles_function.h" @@ -267,6 +268,7 @@ DefaultTensorEngine::optimize(const TensorFunction &expr, Stash &stash) const const Child &child = nodes.back(); child.set(VectorFromDoublesFunction::optimize(child.get(), stash)); child.set(DenseTensorCreateFunction::optimize(child.get(), stash)); + child.set(DenseLambdaPeekOptimizer::optimize(child.get(), stash)); child.set(DenseTensorPeekFunction::optimize(child.get(), stash)); child.set(DenseDotProductFunction::optimize(child.get(), stash)); child.set(DenseXWProductFunction::optimize(child.get(), stash)); diff --git a/eval/src/vespa/eval/tensor/dense/CMakeLists.txt b/eval/src/vespa/eval/tensor/dense/CMakeLists.txt index 635a49cb4a9..9e4c9857bd1 100644 --- a/eval/src/vespa/eval/tensor/dense/CMakeLists.txt +++ b/eval/src/vespa/eval/tensor/dense/CMakeLists.txt @@ -14,6 +14,7 @@ vespa_add_library(eval_tensor_dense OBJECT dense_tensor_address_mapper.cpp dense_tensor_cells_iterator.cpp dense_tensor_create_function.cpp + dense_lambda_peek_optimizer.cpp dense_tensor_modify.cpp dense_tensor_peek_function.cpp dense_tensor_reduce.cpp diff --git a/eval/src/vespa/eval/tensor/dense/dense_lambda_peek_optimizer.cpp b/eval/src/vespa/eval/tensor/dense/dense_lambda_peek_optimizer.cpp new file mode 100644 index 00000000000..14954a77834 --- /dev/null +++ b/eval/src/vespa/eval/tensor/dense/dense_lambda_peek_optimizer.cpp @@ -0,0 +1,13 @@ +// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. + +#include "dense_lambda_peek_optimizer.h" + +namespace vespalib::tensor { + +const eval::TensorFunction & +DenseLambdaPeekOptimizer::optimize(const eval::TensorFunction &expr, Stash &) +{ + return expr; +} + +} diff --git a/eval/src/vespa/eval/tensor/dense/dense_lambda_peek_optimizer.h b/eval/src/vespa/eval/tensor/dense/dense_lambda_peek_optimizer.h new file mode 100644 index 00000000000..7d2a0efde76 --- /dev/null +++ b/eval/src/vespa/eval/tensor/dense/dense_lambda_peek_optimizer.h @@ -0,0 +1,18 @@ +// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. + +#pragma once + +#include <vespa/eval/eval/tensor_function.h> + +namespace vespalib::tensor { + +/** + * Tensor lambda optimizer for creating a new dense tensor based on + * peeking cells of a single existing tensor. This can represent a + * wide area of operations (reshape, gather, slice). + **/ +struct DenseLambdaPeekOptimizer { + static const eval::TensorFunction &optimize(const eval::TensorFunction &expr, Stash &stash); +}; + +} |