summaryrefslogtreecommitdiffstats
path: root/vespalib
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2020-03-20 09:51:48 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2020-03-20 09:51:48 +0000
commitcdbec799d9babdfc9b69d65c0ce052728c01b449 (patch)
treeeeb20b841be5f25fcf659d6cb5cb79e561131fdc /vespalib
parent0872d6ae54cd64ceb2762a0e326ae962b3834427 (diff)
Stick with one way of getting an accelrator.
Diffstat (limited to 'vespalib')
-rw-r--r--vespalib/src/tests/dotproduct/dotproductbenchmark.cpp6
-rw-r--r--vespalib/src/vespa/vespalib/hwaccelrated/iaccelrated.cpp13
-rw-r--r--vespalib/src/vespa/vespalib/hwaccelrated/iaccelrated.h1
3 files changed, 6 insertions, 14 deletions
diff --git a/vespalib/src/tests/dotproduct/dotproductbenchmark.cpp b/vespalib/src/tests/dotproduct/dotproductbenchmark.cpp
index 5b75fb46a41..d6e1aef9394 100644
--- a/vespalib/src/tests/dotproduct/dotproductbenchmark.cpp
+++ b/vespalib/src/tests/dotproduct/dotproductbenchmark.cpp
@@ -48,19 +48,19 @@ public:
FullBenchmark(size_t numDocs, size_t numValue);
~FullBenchmark();
void compute(size_t docId) const override {
- _dp->dotProduct(&_query[0], &_values[docId * _query.size()], _query.size());
+ _dp.dotProduct(&_query[0], &_values[docId * _query.size()], _query.size());
}
private:
std::vector<T> _values;
std::vector<T> _query;
- IAccelrated::UP _dp;
+ const IAccelrated & _dp;
};
template <typename T>
FullBenchmark<T>::FullBenchmark(size_t numDocs, size_t numValues)
: _values(numDocs*numValues),
_query(numValues),
- _dp(IAccelrated::createAccelrator())
+ _dp(IAccelrated::getAccelrator())
{
for (size_t i(0); i < numDocs; i++) {
for (size_t j(0); j < numValues; j++) {
diff --git a/vespalib/src/vespa/vespalib/hwaccelrated/iaccelrated.cpp b/vespalib/src/vespa/vespalib/hwaccelrated/iaccelrated.cpp
index 9d5256d79b2..bb132165e53 100644
--- a/vespalib/src/vespa/vespalib/hwaccelrated/iaccelrated.cpp
+++ b/vespalib/src/vespa/vespalib/hwaccelrated/iaccelrated.cpp
@@ -106,7 +106,7 @@ class RuntimeVerificator
public:
RuntimeVerificator();
private:
- void verify(IAccelrated & accelrated) {
+ void verify(const IAccelrated & accelrated) {
verifyDotproduct<float>(accelrated);
verifyDotproduct<double>(accelrated);
verifyDotproduct<int32_t>(accelrated);
@@ -122,8 +122,8 @@ RuntimeVerificator::RuntimeVerificator()
GenericAccelrator generic;
verify(generic);
- IAccelrated::UP thisCpu(IAccelrated::createAccelrator());
- verify(*thisCpu);
+ const IAccelrated & thisCpu(IAccelrated::getAccelrator());
+ verify(thisCpu);
}
class Selector
@@ -154,13 +154,6 @@ static Selector _G_selector;
RuntimeVerificator _G_verifyAccelrator;
-
-IAccelrated::UP
-IAccelrated::createAccelrator()
-{
- return _G_selector.create();
-}
-
const IAccelrated &
IAccelrated::getAccelrator()
{
diff --git a/vespalib/src/vespa/vespalib/hwaccelrated/iaccelrated.h b/vespalib/src/vespa/vespalib/hwaccelrated/iaccelrated.h
index 0647aca784f..0292ad14643 100644
--- a/vespalib/src/vespa/vespalib/hwaccelrated/iaccelrated.h
+++ b/vespalib/src/vespa/vespalib/hwaccelrated/iaccelrated.h
@@ -30,7 +30,6 @@ public:
virtual double squaredEuclideanDistance(const float * a, const float * b, size_t sz) const = 0;
virtual double squaredEuclideanDistance(const double * a, const double * b, size_t sz) const = 0;
- static IAccelrated::UP createAccelrator() __attribute__((noinline));
static const IAccelrated & getAccelrator() __attribute__((noinline));
};