IVGCVSW-1806: Refactor Android-NN-Driver ModelToINetworkConverter
* Moved conversion logic into new V1_0 and V1_1 HalPolicy classes
* Extracted common helper functions into ConversionUtils class
Change-Id: I1ab50edc266dd528c0cb22a5cd1aa65e103674d9
diff --git a/ArmnnDriverImpl.cpp b/ArmnnDriverImpl.cpp
index c894aef..10da1dd 100644
--- a/ArmnnDriverImpl.cpp
+++ b/ArmnnDriverImpl.cpp
@@ -6,8 +6,8 @@
#define LOG_TAG "ArmnnDriver"
#include "ArmnnDriverImpl.hpp"
-#include "ModelToINetworkConverter.hpp"
#include "ArmnnPreparedModel.hpp"
+#include "ModelToINetworkConverter.hpp"
#include "SystemPropertiesUtils.hpp"
#if defined(ARMNN_ANDROID_P)
@@ -53,12 +53,11 @@
namespace armnn_driver
{
-template <typename HalVersion>
-Return<void> ArmnnDriverImpl<HalVersion>::getSupportedOperations(
- const armnn::IRuntimePtr& runtime,
- const DriverOptions& options,
- const HalModel& model,
- HalGetSupportedOperations_cb cb)
+template<typename HalPolicy>
+Return<void> ArmnnDriverImpl<HalPolicy>::getSupportedOperations(const armnn::IRuntimePtr& runtime,
+ const DriverOptions& options,
+ const HalModel& model,
+ HalGetSupportedOperations_cb cb)
{
ALOGV("ArmnnDriverImpl::getSupportedOperations()");
@@ -78,7 +77,7 @@
}
// Attempt to convert the model to an ArmNN input network (INetwork).
- ModelToINetworkConverter<HalVersion> modelConverter(options.GetComputeDevice(),
+ ModelToINetworkConverter<HalPolicy> modelConverter(options.GetComputeDevice(),
model,
options.GetForcedUnsupportedOperations());
@@ -102,8 +101,8 @@
return Void();
}
-template <typename HalVersion>
-Return<ErrorStatus> ArmnnDriverImpl<HalVersion>::prepareModel(
+template<typename HalPolicy>
+Return<ErrorStatus> ArmnnDriverImpl<HalPolicy>::prepareModel(
const armnn::IRuntimePtr& runtime,
const armnn::IGpuAccTunedParametersPtr& clTunedParameters,
const DriverOptions& options,
@@ -135,7 +134,7 @@
// at this point we're being asked to prepare a model that we've already declared support for
// and the operation indices may be different to those in getSupportedOperations anyway.
set<unsigned int> unsupportedOperations;
- ModelToINetworkConverter<HalVersion> modelConverter(options.GetComputeDevice(),
+ ModelToINetworkConverter<HalPolicy> modelConverter(options.GetComputeDevice(),
model,
unsupportedOperations);
@@ -196,8 +195,8 @@
return ErrorStatus::NONE;
}
- unique_ptr<ArmnnPreparedModel<HalVersion>> preparedModel(
- new ArmnnPreparedModel<HalVersion>(
+ unique_ptr<ArmnnPreparedModel<HalPolicy>> preparedModel(
+ new ArmnnPreparedModel<HalPolicy>(
netId,
runtime.get(),
model,
@@ -228,19 +227,22 @@
return ErrorStatus::NONE;
}
-template <typename HalVersion>
-Return<DeviceStatus> ArmnnDriverImpl<HalVersion>::getStatus()
+template<typename HalPolicy>
+Return<DeviceStatus> ArmnnDriverImpl<HalPolicy>::getStatus()
{
ALOGV("ArmnnDriver::getStatus()");
return DeviceStatus::AVAILABLE;
}
-// Class template specializations
-template class ArmnnDriverImpl<HalVersion_1_0>;
+///
+/// Class template specializations
+///
-#if defined(ARMNN_ANDROID_NN_V1_1) // Using ::android::hardware::neuralnetworks::V1_1.
-template class ArmnnDriverImpl<HalVersion_1_1>;
+template class ArmnnDriverImpl<hal_1_0::HalPolicy>;
+
+#if defined(ARMNN_ANDROID_NN_V1_1)
+template class ArmnnDriverImpl<hal_1_1::HalPolicy>;
#endif
-} // namespace armnn_driver
+} // namespace armnn_driver
\ No newline at end of file