summaryrefslogtreecommitdiffstats
path: root/eval
diff options
context:
space:
mode:
authorArne Juul <arnej@verizonmedia.com>2021-03-01 11:23:35 +0000
committerArne Juul <arnej@verizonmedia.com>2021-03-01 14:04:39 +0000
commit90e9e9ef8b3b8405adf0cf642d72c1a8b576b29c (patch)
tree4cbaeb2d481ec3abaa8d5df39f9d6d30b49166c5 /eval
parentfb481d5f8520166ce414fde4b5afc1c307640186 (diff)
use SmallVector in GenericReduce
Diffstat (limited to 'eval')
-rw-r--r--eval/src/tests/instruction/generic_reduce/generic_reduce_test.cpp8
-rw-r--r--eval/src/vespa/eval/instruction/generic_reduce.cpp6
-rw-r--r--eval/src/vespa/eval/instruction/generic_reduce.h8
3 files changed, 11 insertions, 11 deletions
diff --git a/eval/src/tests/instruction/generic_reduce/generic_reduce_test.cpp b/eval/src/tests/instruction/generic_reduce/generic_reduce_test.cpp
index 4e4cc5fb50b..95236d15299 100644
--- a/eval/src/tests/instruction/generic_reduce/generic_reduce_test.cpp
+++ b/eval/src/tests/instruction/generic_reduce/generic_reduce_test.cpp
@@ -50,9 +50,9 @@ TensorSpec perform_generic_reduce(const TensorSpec &a, Aggr aggr, const std::vec
TEST(GenericReduceTest, dense_reduce_plan_can_be_created) {
auto type = ValueType::from_spec("tensor(a[2],aa{},b[2],bb[1],c[2],cc{},d[2],dd[1],e[2],ee{},f[2])");
auto plan = DenseReducePlan(type, type.reduce({"a", "d", "e"}));
- std::vector<size_t> expect_loop_cnt = {2,4,4,2};
- std::vector<size_t> expect_in_stride = {32,2,8,1};
- std::vector<size_t> expect_out_stride = {0,0,2,1};
+ SmallVector<size_t> expect_loop_cnt = {2,4,4,2};
+ SmallVector<size_t> expect_in_stride = {32,2,8,1};
+ SmallVector<size_t> expect_out_stride = {0,0,2,1};
EXPECT_EQ(plan.in_size, 64);
EXPECT_EQ(plan.out_size, 8);
EXPECT_EQ(plan.loop_cnt, expect_loop_cnt);
@@ -63,7 +63,7 @@ TEST(GenericReduceTest, dense_reduce_plan_can_be_created) {
TEST(GenericReduceTest, sparse_reduce_plan_can_be_created) {
auto type = ValueType::from_spec("tensor(a{},aa[10],b{},c{},cc[5],d{},e{},ee[1],f{})");
auto plan = SparseReducePlan(type, type.reduce({"a", "d", "e"}));
- std::vector<size_t> expect_keep_dims = {1,2,5};
+ SmallVector<size_t> expect_keep_dims = {1,2,5};
EXPECT_EQ(plan.num_reduce_dims, 3);
EXPECT_EQ(plan.keep_dims, expect_keep_dims);
}
diff --git a/eval/src/vespa/eval/instruction/generic_reduce.cpp b/eval/src/vespa/eval/instruction/generic_reduce.cpp
index 2d4144d64b1..c60f77230a3 100644
--- a/eval/src/vespa/eval/instruction/generic_reduce.cpp
+++ b/eval/src/vespa/eval/instruction/generic_reduce.cpp
@@ -46,9 +46,9 @@ ReduceParam::~ReduceParam() = default;
//-----------------------------------------------------------------------------
struct SparseReduceState {
- std::vector<string_id> full_address;
- std::vector<string_id*> fetch_address;
- std::vector<string_id*> keep_address;
+ SmallVector<string_id> full_address;
+ SmallVector<string_id*> fetch_address;
+ SmallVector<string_id*> keep_address;
size_t subspace;
SparseReduceState(const SparseReducePlan &plan)
diff --git a/eval/src/vespa/eval/instruction/generic_reduce.h b/eval/src/vespa/eval/instruction/generic_reduce.h
index 5faafb0325d..1d7221cf54d 100644
--- a/eval/src/vespa/eval/instruction/generic_reduce.h
+++ b/eval/src/vespa/eval/instruction/generic_reduce.h
@@ -17,9 +17,9 @@ namespace vespalib::eval::instruction {
struct DenseReducePlan {
size_t in_size;
size_t out_size;
- std::vector<size_t> loop_cnt;
- std::vector<size_t> in_stride;
- std::vector<size_t> out_stride;
+ SmallVector<size_t> loop_cnt;
+ SmallVector<size_t> in_stride;
+ SmallVector<size_t> out_stride;
DenseReducePlan(const ValueType &type, const ValueType &res_type);
~DenseReducePlan();
template <typename F> void execute(size_t in_idx, const F &f) const {
@@ -29,7 +29,7 @@ struct DenseReducePlan {
struct SparseReducePlan {
size_t num_reduce_dims;
- std::vector<size_t> keep_dims;
+ SmallVector<size_t> keep_dims;
bool should_forward_index() const;
SparseReducePlan(const ValueType &type, const ValueType &res_type);
~SparseReducePlan();