diff options
author | Jim Flynn <jim.flynn@arm.com> | 2019-12-16 11:50:29 +0000 |
---|---|---|
committer | Jim Flynn <jim.flynn@arm.com> | 2019-12-18 10:03:43 +0000 |
commit | d2697984e7d7989f5a8154c46a1bf37d98479415 (patch) | |
tree | b66502b18ef6e0723b5021ab86be55ffea75c15a /ArmnnDriverImpl.cpp | |
parent | dbbcc3948190d874d80f1f095fcbda65d693519d (diff) | |
download | android-nn-driver-d2697984e7d7989f5a8154c46a1bf37d98479415.tar.gz |
IVGCVSW-4271 Add getSupportedOperations marker file
* Also fix segfault in previous graph dump code
* Cherry picked from 19.08 (https://jira.arm.com/browse/IVGCVSW-4297)
Change-Id: Id4f2e89f5126b7962b4439370e6dd3edcee96f51
Signed-off-by: Jim Flynn <jim.flynn@arm.com>
Diffstat (limited to 'ArmnnDriverImpl.cpp')
-rw-r--r-- | ArmnnDriverImpl.cpp | 38 |
1 files changed, 34 insertions, 4 deletions
diff --git a/ArmnnDriverImpl.cpp b/ArmnnDriverImpl.cpp index 46c4e577..cbb2e642 100644 --- a/ArmnnDriverImpl.cpp +++ b/ArmnnDriverImpl.cpp @@ -131,7 +131,7 @@ Return<ErrorStatus> ArmnnDriverImpl<HalPolicy>::prepareModel( // Export the optimized network graph to a dot file if an output dump directory // has been specified in the drivers' arguments. - ExportNetworkGraphToDotFile<HalModel>(*optNet, options.GetRequestInputsAndOutputsDumpDir(), model); + std::string dotGraphFileName = ExportNetworkGraphToDotFile(*optNet, options.GetRequestInputsAndOutputsDumpDir()); // Load it into the runtime. armnn::NetworkId netId = 0; @@ -150,7 +150,13 @@ Return<ErrorStatus> ArmnnDriverImpl<HalPolicy>::prepareModel( return ErrorStatus::NONE; } - sp<ArmnnPreparedModel<HalPolicy>> preparedModel( + // Now that we have a networkId for the graph rename the dump file to use it + // so that we can associate the graph file and the input/output tensor dump files + RenameGraphDotFile(dotGraphFileName, + options.GetRequestInputsAndOutputsDumpDir(), + netId); + + unique_ptr<ArmnnPreparedModel<HalPolicy>> preparedModel( new ArmnnPreparedModel<HalPolicy>( netId, runtime.get(), @@ -180,7 +186,7 @@ Return<ErrorStatus> ArmnnDriverImpl<HalPolicy>::prepareModel( } } - NotifyCallbackAndCheck(cb, ErrorStatus::NONE, preparedModel); + NotifyCallbackAndCheck(cb, ErrorStatus::NONE, preparedModel.release()); return ErrorStatus::NONE; } @@ -191,7 +197,31 @@ Return<void> ArmnnDriverImpl<HalPolicy>::getSupportedOperations(const armnn::IRu const HalModel& model, HalGetSupportedOperations_cb cb) { - ALOGV("ArmnnDriverImpl::getSupportedOperations()"); + std::stringstream ss; + ss << "ArmnnDriverImpl::getSupportedOperations()"; + std::string fileName; + std::string timestamp; + if (!options.GetRequestInputsAndOutputsDumpDir().empty()) + { + timestamp = GetFileTimestamp(); + fileName = boost::str(boost::format("%1%/%2%_getSupportedOperations.txt") + % options.GetRequestInputsAndOutputsDumpDir() + % timestamp); + ss << " : " << fileName; + } + ALOGV(ss.str().c_str()); + + if (!options.GetRequestInputsAndOutputsDumpDir().empty()) + { + //dump the marker file + std::ofstream fileStream; + fileStream.open(fileName, std::ofstream::out | std::ofstream::trunc); + if (fileStream.good()) + { + fileStream << timestamp << std::endl; + } + fileStream.close(); + } vector<bool> result; |