diff options
author | Lev Proleev <levp@google.com> | 2019-10-10 13:53:59 +0000 |
---|---|---|
committer | Lev Proleev <levp@google.com> | 2019-10-10 13:53:59 +0000 |
commit | 0ec8dcbd91234d168aa3856f57481c35f1c14b9e (patch) | |
tree | ed88d7f40e3446fa9b835adcebcfdb3da29b6a0b /nn/runtime/test/TestPartitioning.cpp | |
parent | af88effce1b911743d562f5490af2300c54f2349 (diff) | |
download | ml-0ec8dcbd91234d168aa3856f57481c35f1c14b9e.tar.gz |
Revert "Add HAL version 1.3 and add TENSOR_QUANT8_ASYMM_SIGNED OperandType"
This reverts commit af88effce1b911743d562f5490af2300c54f2349.
Reason for revert: the topic breaks git_qt-dev-plus-aosp
Change-Id: Iddfcffb76af61fb20d749902ddf9c960e211c69d
Diffstat (limited to 'nn/runtime/test/TestPartitioning.cpp')
-rw-r--r-- | nn/runtime/test/TestPartitioning.cpp | 148 |
1 files changed, 33 insertions, 115 deletions
diff --git a/nn/runtime/test/TestPartitioning.cpp b/nn/runtime/test/TestPartitioning.cpp index b01e58015..11ec94479 100644 --- a/nn/runtime/test/TestPartitioning.cpp +++ b/nn/runtime/test/TestPartitioning.cpp @@ -14,19 +14,6 @@ * limitations under the License. */ -#include <gtest/gtest.h> - -#include <algorithm> -#include <filesystem> -#include <functional> -#include <map> -#include <memory> -#include <queue> -#include <string> -#include <type_traits> -#include <utility> -#include <vector> - #include "CompilationBuilder.h" #include "ExecutionPlan.h" #include "HalInterfaces.h" @@ -39,6 +26,14 @@ #include "Utils.h" #include "ValidateHal.h" +#include <gtest/gtest.h> + +#include <filesystem> +#include <functional> +#include <map> +#include <queue> +#include <type_traits> + // Uncomment the following line to generate some debugging output that // may be useful when analyzing failures: // @@ -143,7 +138,7 @@ using ExecutePreference = ::android::nn::test_wrapper::ExecutePreference; using ExecutionPlan = ::android::nn::ExecutionPlan; using ExecutionStep = ::android::nn::ExecutionStep; using HalVersion = ::android::nn::HalVersion; -using HidlModel = V1_3::Model; +using HidlModel = V1_2::Model; using ModelBuilder = ::android::nn::ModelBuilder; using Result = ::android::nn::test_wrapper::Result; using SampleDriver = ::android::nn::sample_driver::SampleDriver; @@ -162,8 +157,7 @@ Capabilities makeCapabilities(float perf) { PerformanceInfo perfInfo = {.execTime = perf, .powerUsage = perf}; return {.relaxedFloat32toFloat16PerformanceScalar = perfInfo, .relaxedFloat32toFloat16PerformanceTensor = perfInfo, - .operandPerformance = - ::android::nn::nonExtensionOperandPerformance<HalVersion::V1_3>(perfInfo)}; + .operandPerformance = ::android::nn::nonExtensionOperandPerformance(perfInfo)}; }; void update(Capabilities* capabilities, OperandType type, float perf) { @@ -332,7 +326,7 @@ class PartitioningDriver : public SampleDriver { return Void(); } - Return<ErrorStatus> prepareModel_1_3(const Model& model, ExecutionPreference, + Return<ErrorStatus> prepareModel_1_2(const Model& model, ExecutionPreference, const hidl_vec<hidl_handle>&, const hidl_vec<hidl_handle>&, const CacheToken&, const sp<IPreparedModelCallback>& cb) override { @@ -351,12 +345,12 @@ class PartitioningDriver : public SampleDriver { Return<DeviceStatus> getStatus() override { return DeviceStatus::AVAILABLE; } - Return<void> getCapabilities_1_3(getCapabilities_1_3_cb cb) override { + Return<void> getCapabilities_1_2(getCapabilities_1_2_cb cb) override { cb(ErrorStatus::NONE, mCapabilities); return Void(); } - Return<void> getSupportedOperations_1_3(const Model& model, + Return<void> getSupportedOperations_1_2(const Model& model, getSupportedOperations_cb cb) override { if (!android::nn::validateModel(model)) { cb(ErrorStatus::INVALID_ARGUMENT, std::vector<bool>()); @@ -399,108 +393,41 @@ class PartitioningDriver : public SampleDriver { OEM mOEM; }; -// Like PartitioningDriver, but implementing 1.2 -class PartitioningDriverV1_2 : public V1_2::IDevice { - public: - PartitioningDriverV1_2(const char* name, const char* version, Capabilities capabilities, - uint32_t operationMask, - PartitioningDriver::OEM oem = PartitioningDriver::OEMNo) - : mLatestDriver(new PartitioningDriver(name, version, capabilities, operationMask, oem)) {} - Return<void> getCapabilities_1_2(getCapabilities_1_2_cb _hidl_cb) override { - return mLatestDriver->getCapabilities_1_2(_hidl_cb); - } - Return<void> getSupportedOperations_1_2(const V1_2::Model& model, - getSupportedOperations_1_2_cb _hidl_cb) override { - return mLatestDriver->getSupportedOperations_1_2(model, _hidl_cb); - } - Return<ErrorStatus> prepareModel_1_2( - const V1_2::Model& model, ExecutionPreference preference, - const hidl_vec<hidl_handle>& modelCache, const hidl_vec<hidl_handle>& dataCache, - const CacheToken& token, const sp<IPreparedModelCallback>& actualCallback) override { - return mLatestDriver->prepareModel_1_2(model, preference, modelCache, dataCache, token, - actualCallback); - } - Return<void> getVersionString(getVersionString_cb _hidl_cb) override { - return mLatestDriver->getVersionString(_hidl_cb); - } - Return<void> getType(getType_cb _hidl_cb) override { return mLatestDriver->getType(_hidl_cb); } - Return<void> getSupportedExtensions(getSupportedExtensions_cb _hidl_cb) { - return mLatestDriver->getSupportedExtensions(_hidl_cb); - } - Return<void> getNumberOfCacheFilesNeeded(getNumberOfCacheFilesNeeded_cb _hidl_cb) { - return mLatestDriver->getNumberOfCacheFilesNeeded(_hidl_cb); - } - Return<ErrorStatus> prepareModelFromCache(const hidl_vec<hidl_handle>& modelCache, - const hidl_vec<hidl_handle>& dataCache, - const CacheToken& token, - const sp<V1_2::IPreparedModelCallback>& callback) { - return mLatestDriver->prepareModelFromCache(modelCache, dataCache, token, callback); - } - Return<void> getCapabilities_1_1(getCapabilities_1_1_cb _hidl_cb) override { - return mLatestDriver->getCapabilities_1_1(_hidl_cb); - } - Return<void> getSupportedOperations_1_1(const V1_1::Model& model, - getSupportedOperations_1_1_cb _hidl_cb) override { - return mLatestDriver->getSupportedOperations_1_1(model, _hidl_cb); - } - Return<ErrorStatus> prepareModel_1_1( - const V1_1::Model& model, ExecutionPreference preference, - const sp<V1_0::IPreparedModelCallback>& actualCallback) override { - return mLatestDriver->prepareModel_1_1(model, preference, actualCallback); - } - Return<DeviceStatus> getStatus() override { return mLatestDriver->getStatus(); } - Return<void> getCapabilities(getCapabilities_cb _hidl_cb) override { - return mLatestDriver->getCapabilities(_hidl_cb); - } - Return<void> getSupportedOperations(const V1_0::Model& model, - getSupportedOperations_cb _hidl_cb) override { - return mLatestDriver->getSupportedOperations(model, _hidl_cb); - } - Return<ErrorStatus> prepareModel( - const V1_0::Model& model, - const sp<V1_0::IPreparedModelCallback>& actualCallback) override { - return mLatestDriver->prepareModel(model, actualCallback); - } - - private: - const sp<V1_3::IDevice> mLatestDriver; -}; - // Like PartitioningDriver, but implementing 1.1 class PartitioningDriverV1_1 : public V1_1::IDevice { public: PartitioningDriverV1_1(const char* name, const char* version, Capabilities capabilities, uint32_t operationMask, PartitioningDriver::OEM oem = PartitioningDriver::OEMNo) - : mLatestDriver(new PartitioningDriver(name, version, capabilities, operationMask, oem)) {} + : mDriverV1_2(new PartitioningDriver(name, version, capabilities, operationMask, oem)) {} Return<void> getCapabilities_1_1(getCapabilities_1_1_cb _hidl_cb) override { - return mLatestDriver->getCapabilities_1_1(_hidl_cb); + return mDriverV1_2->getCapabilities_1_1(_hidl_cb); } Return<void> getSupportedOperations_1_1(const V1_1::Model& model, getSupportedOperations_1_1_cb _hidl_cb) override { - return mLatestDriver->getSupportedOperations_1_1(model, _hidl_cb); + return mDriverV1_2->getSupportedOperations_1_1(model, _hidl_cb); } Return<ErrorStatus> prepareModel_1_1( const V1_1::Model& model, ExecutionPreference preference, const sp<V1_0::IPreparedModelCallback>& actualCallback) override { - return mLatestDriver->prepareModel_1_1(model, preference, actualCallback); + return mDriverV1_2->prepareModel_1_1(model, preference, actualCallback); } - Return<DeviceStatus> getStatus() override { return mLatestDriver->getStatus(); } + Return<DeviceStatus> getStatus() override { return mDriverV1_2->getStatus(); } Return<void> getCapabilities(getCapabilities_cb _hidl_cb) override { - return mLatestDriver->getCapabilities(_hidl_cb); + return mDriverV1_2->getCapabilities(_hidl_cb); } Return<void> getSupportedOperations(const V1_0::Model& model, getSupportedOperations_cb _hidl_cb) override { - return mLatestDriver->getSupportedOperations(model, _hidl_cb); + return mDriverV1_2->getSupportedOperations(model, _hidl_cb); } Return<ErrorStatus> prepareModel( const V1_0::Model& model, const sp<V1_0::IPreparedModelCallback>& actualCallback) override { - return mLatestDriver->prepareModel(model, actualCallback); + return mDriverV1_2->prepareModel(model, actualCallback); } private: - const sp<V1_3::IDevice> mLatestDriver; + const sp<V1_2::IDevice> mDriverV1_2; }; // Like PartitioningDriver, but implementing 1.0 @@ -509,23 +436,23 @@ class PartitioningDriverV1_0 : public V1_0::IDevice { PartitioningDriverV1_0(const char* name, const char* version, Capabilities capabilities, uint32_t operationMask, PartitioningDriver::OEM oem = PartitioningDriver::OEMNo) - : mLatestDriver(new PartitioningDriver(name, version, capabilities, operationMask, oem)) {} + : mDriverV1_2(new PartitioningDriver(name, version, capabilities, operationMask, oem)) {} Return<void> getCapabilities(getCapabilities_cb _hidl_cb) override { - return mLatestDriver->getCapabilities(_hidl_cb); + return mDriverV1_2->getCapabilities(_hidl_cb); } Return<void> getSupportedOperations(const V1_0::Model& model, getSupportedOperations_cb _hidl_cb) override { - return mLatestDriver->getSupportedOperations(model, _hidl_cb); + return mDriverV1_2->getSupportedOperations(model, _hidl_cb); } Return<ErrorStatus> prepareModel( const V1_0::Model& model, const sp<V1_0::IPreparedModelCallback>& actualCallback) override { - return mLatestDriver->prepareModel(model, actualCallback); + return mDriverV1_2->prepareModel(model, actualCallback); } - Return<DeviceStatus> getStatus() override { return mLatestDriver->getStatus(); } + Return<DeviceStatus> getStatus() override { return mDriverV1_2->getStatus(); } private: - const sp<V1_3::IDevice> mLatestDriver; + const sp<V1_2::IDevice> mDriverV1_2; }; // This class adds some simple abstractions and utilities on top of @@ -572,7 +499,6 @@ class PartitioningModel : private WrapperModel { case ANEURALNETWORKS_TENSOR_INT32: case ANEURALNETWORKS_TENSOR_QUANT8_ASYMM: - case ANEURALNETWORKS_TENSOR_QUANT8_ASYMM_SIGNED: case ANEURALNETWORKS_TENSOR_QUANT8_SYMM: case ANEURALNETWORKS_TENSOR_QUANT16_ASYMM: case ANEURALNETWORKS_TENSOR_QUANT16_SYMM: { @@ -779,12 +705,10 @@ class PartitioningTest : public ::testing::Test { PartitioningDriver::OEM oem = PartitioningDriver::OEMNo) : mName(name), mVersionString(version), mOperationMask(operationMask), mOEM(oem) { PerformanceInfo perfRelaxedInfo = {.execTime = perfRelaxed, .powerUsage = perfRelaxed}; - mCapabilities = { - .relaxedFloat32toFloat16PerformanceScalar = perfRelaxedInfo, - .relaxedFloat32toFloat16PerformanceTensor = perfRelaxedInfo, - .operandPerformance = - ::android::nn::nonExtensionOperandPerformance<HalVersion::V1_3>( - {.execTime = perf, .powerUsage = perf})}; + mCapabilities = {.relaxedFloat32toFloat16PerformanceScalar = perfRelaxedInfo, + .relaxedFloat32toFloat16PerformanceTensor = perfRelaxedInfo, + .operandPerformance = ::android::nn::nonExtensionOperandPerformance( + {.execTime = perf, .powerUsage = perf})}; } DeviceSpecification(const std::string& name, float perf, HalVersion halVersion, uint32_t operationMaskV1_0, uint32_t operationMaskV1_1 = 0, @@ -849,14 +773,8 @@ class PartitioningTest : public ::testing::Test { for (const auto& specification : specifications) { V1_0::IDevice* halDriver = nullptr; switch (specification.mHalVersion) { - case HalVersion::V1_3: - halDriver = new PartitioningDriver( - specification.mName.c_str(), specification.mVersionString.c_str(), - specification.mCapabilities, specification.mOperationMask, - specification.mOEM); - break; case HalVersion::V1_2: - halDriver = new PartitioningDriverV1_2( + halDriver = new PartitioningDriver( specification.mName.c_str(), specification.mVersionString.c_str(), specification.mCapabilities, specification.mOperationMask, specification.mOEM); |