summaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2020-03-20 13:50:53 +0100
committerGitHub <noreply@github.com>2020-03-20 13:50:53 +0100
commitd6e56c260949a445e04dbe5429126907bddc994c (patch)
tree351f74339f179e6267d515e49efee960b23ebd67 /searchlib
parent40d541d90faf3b5dbc36b416b2001e793e3ac3a6 (diff)
parent27dc368c19cd5b442f1e434ed6eef15d9b777453 (diff)
Merge pull request #12629 from vespa-engine/balder/use-common-accelrator-instance
Use a common accelrator instance
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/vespa/searchlib/common/bitvector.cpp10
-rw-r--r--searchlib/src/vespa/searchlib/features/dotproductfeature.cpp2
-rw-r--r--searchlib/src/vespa/searchlib/features/dotproductfeature.h4
-rw-r--r--searchlib/src/vespa/searchlib/tensor/distance_functions.h4
4 files changed, 10 insertions, 10 deletions
diff --git a/searchlib/src/vespa/searchlib/common/bitvector.cpp b/searchlib/src/vespa/searchlib/common/bitvector.cpp
index e28ebe6682f..2e70e9f2603 100644
--- a/searchlib/src/vespa/searchlib/common/bitvector.cpp
+++ b/searchlib/src/vespa/searchlib/common/bitvector.cpp
@@ -165,7 +165,7 @@ BitVector::countInterval(Index start, Index end) const
++endw;
}
if (startw < endw) {
- res += IAccelrated::getAccelrator()->populationCount(bitValues + startw, endw - startw);
+ res += IAccelrated::getAccelrator().populationCount(bitValues + startw, endw - startw);
}
if (partialEnd) {
res += Optimized::popCount(bitValues[endw] & ~endBits(last));
@@ -178,7 +178,7 @@ void
BitVector::orWith(const BitVector & right)
{
verifyContains(*this, right);
- IAccelrated::getAccelrator()->orBit(getActiveStart(), right.getWordIndex(getStartIndex()), getActiveBytes());
+ IAccelrated::getAccelrator().orBit(getActiveStart(), right.getWordIndex(getStartIndex()), getActiveBytes());
repairEnds();
invalidateCachedCount();
@@ -201,7 +201,7 @@ BitVector::andWith(const BitVector & right)
{
verifyContains(*this, right);
- IAccelrated::getAccelrator()->andBit(getActiveStart(), right.getWordIndex(getStartIndex()), getActiveBytes());
+ IAccelrated::getAccelrator().andBit(getActiveStart(), right.getWordIndex(getStartIndex()), getActiveBytes());
setGuardBit();
invalidateCachedCount();
@@ -213,7 +213,7 @@ BitVector::andNotWith(const BitVector& right)
{
verifyContains(*this, right);
- IAccelrated::getAccelrator()->andNotBit(getActiveStart(), right.getWordIndex(getStartIndex()), getActiveBytes());
+ IAccelrated::getAccelrator().andNotBit(getActiveStart(), right.getWordIndex(getStartIndex()), getActiveBytes());
setGuardBit();
invalidateCachedCount();
@@ -221,7 +221,7 @@ BitVector::andNotWith(const BitVector& right)
void
BitVector::notSelf() {
- IAccelrated::getAccelrator()->notBit(getActiveStart(), getActiveBytes());
+ IAccelrated::getAccelrator().notBit(getActiveStart(), getActiveBytes());
setGuardBit();
invalidateCachedCount();
}
diff --git a/searchlib/src/vespa/searchlib/features/dotproductfeature.cpp b/searchlib/src/vespa/searchlib/features/dotproductfeature.cpp
index 811a318682b..ec31bcb5117 100644
--- a/searchlib/src/vespa/searchlib/features/dotproductfeature.cpp
+++ b/searchlib/src/vespa/searchlib/features/dotproductfeature.cpp
@@ -268,7 +268,7 @@ void DotProductExecutorBase<BaseType>::execute(uint32_t docId) {
size_t count = getAttributeValues(docId, values);
size_t commonRange = std::min(count, _queryVector.size());
static_assert(std::is_same<typename AT::ValueType, BaseType>::value);
- outputs().set_number(0, _multiplier->dotProduct(
+ outputs().set_number(0, _multiplier.dotProduct(
&_queryVector[0], reinterpret_cast<const typename AT::ValueType *>(values), commonRange));
}
diff --git a/searchlib/src/vespa/searchlib/features/dotproductfeature.h b/searchlib/src/vespa/searchlib/features/dotproductfeature.h
index a13fc6794fc..bca6983877c 100644
--- a/searchlib/src/vespa/searchlib/features/dotproductfeature.h
+++ b/searchlib/src/vespa/searchlib/features/dotproductfeature.h
@@ -181,8 +181,8 @@ public:
using AT = multivalue::Value<BaseType>;
using V = std::vector<BaseType>;
private:
- vespalib::hwaccelrated::IAccelrated::UP _multiplier;
- V _queryVector;
+ const vespalib::hwaccelrated::IAccelrated & _multiplier;
+ V _queryVector;
virtual size_t getAttributeValues(uint32_t docid, const AT * & count) = 0;
public:
DotProductExecutorBase(const V & queryVector);
diff --git a/searchlib/src/vespa/searchlib/tensor/distance_functions.h b/searchlib/src/vespa/searchlib/tensor/distance_functions.h
index 09f538269d8..d4636b04ef7 100644
--- a/searchlib/src/vespa/searchlib/tensor/distance_functions.h
+++ b/searchlib/src/vespa/searchlib/tensor/distance_functions.h
@@ -23,9 +23,9 @@ public:
auto rhs_vector = rhs.typify<FloatType>();
size_t sz = lhs_vector.size();
assert(sz == rhs_vector.size());
- return _computer->squaredEuclideanDistance(&lhs_vector[0], &rhs_vector[0], sz);
+ return _computer.squaredEuclideanDistance(&lhs_vector[0], &rhs_vector[0], sz);
}
- vespalib::hwaccelrated::IAccelrated::UP _computer;
+ const vespalib::hwaccelrated::IAccelrated & _computer;
};
template class SquaredEuclideanDistance<float>;