diff options
author | Håvard Pettersen <havardpe@oath.com> | 2019-12-04 09:55:46 +0000 |
---|---|---|
committer | Håvard Pettersen <havardpe@oath.com> | 2019-12-04 09:56:58 +0000 |
commit | cc0b53724c8fdc5b9bcad6f45183b2c754418a7d (patch) | |
tree | 6df72e5436419db3169a36687fbb8c6e88ec8578 /eval | |
parent | 500c3d014b5a0a60008df8760592cbe19e566f09 (diff) |
remove TensorLambda class
Diffstat (limited to 'eval')
-rw-r--r-- | eval/src/vespa/eval/eval/interpreted_function.cpp | 3 | ||||
-rw-r--r-- | eval/src/vespa/eval/eval/key_gen.cpp | 7 | ||||
-rw-r--r-- | eval/src/vespa/eval/eval/llvm/compiled_function.cpp | 1 | ||||
-rw-r--r-- | eval/src/vespa/eval/eval/llvm/llvm_wrapper.cpp | 3 | ||||
-rw-r--r-- | eval/src/vespa/eval/eval/make_tensor_function.cpp | 28 | ||||
-rw-r--r-- | eval/src/vespa/eval/eval/node_types.cpp | 3 | ||||
-rw-r--r-- | eval/src/vespa/eval/eval/node_visitor.h | 2 | ||||
-rw-r--r-- | eval/src/vespa/eval/eval/tensor_nodes.cpp | 1 | ||||
-rw-r--r-- | eval/src/vespa/eval/eval/tensor_nodes.h | 24 |
9 files changed, 3 insertions, 69 deletions
diff --git a/eval/src/vespa/eval/eval/interpreted_function.cpp b/eval/src/vespa/eval/eval/interpreted_function.cpp index 5575f4ecb1c..b93ad1eb10c 100644 --- a/eval/src/vespa/eval/eval/interpreted_function.cpp +++ b/eval/src/vespa/eval/eval/interpreted_function.cpp @@ -28,9 +28,6 @@ const Function *get_lambda(const nodes::Node &node) { if (auto ptr = nodes::as<nodes::TensorJoin>(node)) { return &ptr->lambda(); } - if (auto ptr = nodes::as<nodes::TensorLambda>(node)) { - return &ptr->lambda(); - } return nullptr; } diff --git a/eval/src/vespa/eval/eval/key_gen.cpp b/eval/src/vespa/eval/eval/key_gen.cpp index f107ba9e59b..0f8382b5afc 100644 --- a/eval/src/vespa/eval/eval/key_gen.cpp +++ b/eval/src/vespa/eval/eval/key_gen.cpp @@ -39,10 +39,9 @@ struct KeyGen : public NodeVisitor, public NodeTraverser { void visit(const TensorJoin &) override { add_byte(12); } // lambda should be part of key void visit(const TensorReduce &) override { add_byte(13); } // aggr/dimensions should be part of key void visit(const TensorRename &) override { add_byte(14); } // dimensions should be part of key - void visit(const TensorLambda &) override { add_byte(15); } // type/lambda should be part of key - void visit(const TensorConcat &) override { add_byte(16); } // dimension should be part of key - void visit(const TensorCreate &) override { add_byte(17); } // type should be part of key - void visit(const TensorPeek &) override { add_byte(18); } // addr should be part of key + void visit(const TensorConcat &) override { add_byte(15); } // dimension should be part of key + void visit(const TensorCreate &) override { add_byte(16); } // type/addr should be part of key + void visit(const TensorPeek &) override { add_byte(17); } // addr should be part of key void visit(const Add &) override { add_byte(20); } void visit(const Sub &) override { add_byte(21); } void visit(const Mul &) override { add_byte(22); } diff --git a/eval/src/vespa/eval/eval/llvm/compiled_function.cpp b/eval/src/vespa/eval/eval/llvm/compiled_function.cpp index ba5b8e99254..ca34c31e976 100644 --- a/eval/src/vespa/eval/eval/llvm/compiled_function.cpp +++ b/eval/src/vespa/eval/eval/llvm/compiled_function.cpp @@ -130,7 +130,6 @@ CompiledFunction::detect_issues(const Function &function) nodes::TensorJoin, nodes::TensorReduce, nodes::TensorRename, - nodes::TensorLambda, nodes::TensorConcat, nodes::TensorCreate, nodes::TensorPeek>(node)) diff --git a/eval/src/vespa/eval/eval/llvm/llvm_wrapper.cpp b/eval/src/vespa/eval/eval/llvm/llvm_wrapper.cpp index f62a7aeb7b1..e5b7d45b0e2 100644 --- a/eval/src/vespa/eval/eval/llvm/llvm_wrapper.cpp +++ b/eval/src/vespa/eval/eval/llvm/llvm_wrapper.cpp @@ -473,9 +473,6 @@ struct FunctionBuilder : public NodeVisitor, public NodeTraverser { void visit(const TensorRename &node) override { make_error(node.num_children()); } - void visit(const TensorLambda &node) override { - make_error(node.num_children()); - } void visit(const TensorConcat &node) override { make_error(node.num_children()); } diff --git a/eval/src/vespa/eval/eval/make_tensor_function.cpp b/eval/src/vespa/eval/eval/make_tensor_function.cpp index 0087bf5efe7..a7215eabcb9 100644 --- a/eval/src/vespa/eval/eval/make_tensor_function.cpp +++ b/eval/src/vespa/eval/eval/make_tensor_function.cpp @@ -20,18 +20,6 @@ using join_fun_t = double (*)(double, double); //----------------------------------------------------------------------------- -bool step_labels(std::vector<double> &labels, const ValueType &type) { - for (size_t idx = labels.size(); idx-- > 0; ) { - labels[idx] += 1.0; - if (size_t(labels[idx]) < type.dimensions()[idx].size) { - return true; - } else { - labels[idx] = 0.0; - } - } - return false; -} - // TODO(havardpe): generic function pointer resolving for all single // operation lambdas. @@ -215,22 +203,6 @@ struct TensorFunctionBuilder : public NodeVisitor, public NodeTraverser { void visit(const TensorRename &node) override { make_rename(node, node.from(), node.to()); } - void visit(const TensorLambda &node) override { - const auto &type = node.type(); - TensorSpec spec(type.to_spec()); - const auto &token = stash.create<CompileCache::Token::UP>(CompileCache::compile(node.lambda(), PassParams::ARRAY)); - auto fun = token.get()->get().get_function(); - std::vector<double> params(type.dimensions().size(), 0.0); - assert(token.get()->get().num_params() == params.size()); - do { - TensorSpec::Address addr; - for (size_t i = 0; i < params.size(); ++i) { - addr.emplace(type.dimensions()[i].name, size_t(params[i])); - } - spec.add(addr, fun(¶ms[0])); - } while (step_labels(params, type)); - make_const(node, *stash.create<Value::UP>(tensor_engine.from_spec(spec))); - } void visit(const TensorConcat &node) override { make_concat(node, node.dimension()); } diff --git a/eval/src/vespa/eval/eval/node_types.cpp b/eval/src/vespa/eval/eval/node_types.cpp index 3e8f06c0941..972afb7663f 100644 --- a/eval/src/vespa/eval/eval/node_types.cpp +++ b/eval/src/vespa/eval/eval/node_types.cpp @@ -105,9 +105,6 @@ struct TypeResolver : public NodeVisitor, public NodeTraverser { const ValueType &child = type(node.get_child(0)); bind(child.rename(node.from(), node.to()), node); } - void visit(const TensorLambda &node) override { - bind(node.type(), node); - } void visit(const TensorConcat &node) override { bind(ValueType::concat(type(node.get_child(0)), type(node.get_child(1)), node.dimension()), node); diff --git a/eval/src/vespa/eval/eval/node_visitor.h b/eval/src/vespa/eval/eval/node_visitor.h index bca4e00d72e..f32161a24c4 100644 --- a/eval/src/vespa/eval/eval/node_visitor.h +++ b/eval/src/vespa/eval/eval/node_visitor.h @@ -33,7 +33,6 @@ struct NodeVisitor { virtual void visit(const nodes::TensorJoin &) = 0; virtual void visit(const nodes::TensorReduce &) = 0; virtual void visit(const nodes::TensorRename &) = 0; - virtual void visit(const nodes::TensorLambda &) = 0; virtual void visit(const nodes::TensorConcat &) = 0; virtual void visit(const nodes::TensorCreate &) = 0; virtual void visit(const nodes::TensorPeek &) = 0; @@ -103,7 +102,6 @@ struct EmptyNodeVisitor : NodeVisitor { void visit(const nodes::TensorJoin &) override {} void visit(const nodes::TensorReduce &) override {} void visit(const nodes::TensorRename &) override {} - void visit(const nodes::TensorLambda &) override {} void visit(const nodes::TensorConcat &) override {} void visit(const nodes::TensorCreate &) override {} void visit(const nodes::TensorPeek &) override {} diff --git a/eval/src/vespa/eval/eval/tensor_nodes.cpp b/eval/src/vespa/eval/eval/tensor_nodes.cpp index cee7a1aeb11..e392248a08a 100644 --- a/eval/src/vespa/eval/eval/tensor_nodes.cpp +++ b/eval/src/vespa/eval/eval/tensor_nodes.cpp @@ -11,7 +11,6 @@ void TensorMap ::accept(NodeVisitor &visitor) const { visitor.visit(*this); } void TensorJoin ::accept(NodeVisitor &visitor) const { visitor.visit(*this); } void TensorReduce::accept(NodeVisitor &visitor) const { visitor.visit(*this); } void TensorRename::accept(NodeVisitor &visitor) const { visitor.visit(*this); } -void TensorLambda::accept(NodeVisitor &visitor) const { visitor.visit(*this); } void TensorConcat::accept(NodeVisitor &visitor) const { visitor.visit(*this); } void TensorCreate::accept(NodeVisitor &visitor) const { visitor.visit(*this); } void TensorPeek ::accept(NodeVisitor &visitor) const { visitor.visit(*this); } diff --git a/eval/src/vespa/eval/eval/tensor_nodes.h b/eval/src/vespa/eval/eval/tensor_nodes.h index a471f027675..ca3369ad9ba 100644 --- a/eval/src/vespa/eval/eval/tensor_nodes.h +++ b/eval/src/vespa/eval/eval/tensor_nodes.h @@ -156,30 +156,6 @@ public: } }; -class TensorLambda : public Leaf { -private: - ValueType _type; - Function _lambda; -public: - TensorLambda(ValueType type_in, Function lambda) - : _type(std::move(type_in)), _lambda(std::move(lambda)) {} - const ValueType &type() const { return _type; } - const Function &lambda() const { return _lambda; } - vespalib::string dump(DumpContext &) const override { - vespalib::string str = _type.to_spec(); - vespalib::string expr = _lambda.dump(); - if (starts_with(expr, "(")) { - str += expr; - } else { - str += "("; - str += expr; - str += ")"; - } - return str; - } - void accept(NodeVisitor &visitor) const override; -}; - class TensorConcat : public Node { private: Node_UP _lhs; |