diff options
author | Sadik Armagan <sadik.armagan@arm.com> | 2022-06-17 15:38:22 +0100 |
---|---|---|
committer | Sadik Armagan <sadik.armagan@arm.com> | 2022-06-20 14:41:39 +0100 |
commit | 8f397a1efed11e17e9f8cb12b53a72b7e32ab978 (patch) | |
tree | 5a4f351ee688bd760449c82c455b0e324b11f88d /shim/shimservice.cpp | |
parent | d2e52e8873629ff920188615121cb104eb0fcc96 (diff) | |
download | armnn-8f397a1efed11e17e9f8cb12b53a72b7e32ab978.tar.gz |
IVGCVSW-6989 "Merged experimental/armnn_shim_sl"
* Updated Serializer CMakeLists.txt to build armnnSerializerObj
* Added constant tensors as input support to SL
Signed-off-by: Sadik Armagan <sadik.armagan@arm.com>
Change-Id: I22f6cf50147d99a01f7fe70d7446b114a4c57af3
Diffstat (limited to 'shim/shimservice.cpp')
-rw-r--r-- | shim/shimservice.cpp | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/shim/shimservice.cpp b/shim/shimservice.cpp new file mode 100644 index 0000000000..44dc596c78 --- /dev/null +++ b/shim/shimservice.cpp @@ -0,0 +1,51 @@ +// +// Copyright © 2022 Arm Ltd and Contributors. All rights reserved. +// SPDX-License-Identifier: MIT +// + +#define LOG_TAG "ArmnnDriver" + +#include <android-base/logging.h> +#include <android-base/scopeguard.h> +#include <dlfcn.h> + +#include "NeuralNetworksShim.h" +#include "SupportLibrarySymbols.h" + +#include <string> + +using namespace std; + +int main() +{ + /// The platform shim allows use of the armnn support library driver (arm-armnn-sl) to create a + /// binderized vendor service (arm-armnn-shim) that is started at device startup + + NnApiSLDriverImpl* impl = ANeuralNetworks_getSLDriverImpl(); + if (impl == nullptr) + { + LOG(ERROR) << "ArmnnDriver: ANeuralNetworks_getSLDriverImpl returned nullptr!!!"; + return EXIT_FAILURE; + } + + ANeuralNetworksShimDeviceInfo* deviceInfo; + ANeuralNetworksShimDeviceInfo_create(&deviceInfo, + /*deviceName=*/"arm-armnn-sl", + /*serviceName=*/"arm-armnn-shim"); + const auto guardDeviceInfo = android::base::make_scope_guard( + [deviceInfo] { ANeuralNetworksShimDeviceInfo_free(deviceInfo); }); + + ANeuralNetworksShimRegistrationParams* params; + ANeuralNetworksShimRegistrationParams_create(impl, ¶ms); + const auto guardParams = android::base::make_scope_guard( + [params] { ANeuralNetworksShimRegistrationParams_free(params); }); + ANeuralNetworksShimRegistrationParams_addDeviceInfo(params, deviceInfo); + ANeuralNetworksShimRegistrationParams_setNumberOfListenerThreads(params, 15); + ANeuralNetworksShimRegistrationParams_registerAsLazyService(params, false); + ANeuralNetworksShimRegistrationParams_fallbackToMinimumSupportDevice(params, false); + + auto result = ANeuralNetworksShim_registerSupportLibraryService(params); + LOG(ERROR) << "ArmnnDriver: ANeuralNetworksShim_registerSupportLibraryService returned error status: " << result; + + return EXIT_FAILURE; +} |