aboutsummaryrefslogtreecommitdiff
path: root/src/armnnUtils
AgeCommit message (Collapse)Author
2020-02-18COMPMID-3059: Add TF parser support for StridedSliceGeorgios Pinitas
Signed-off-by: Georgios Pinitas <georgios.pinitas@arm.com> Change-Id: I31f25f26a50c9054b5650b1be127c84194b56be7
2020-01-24Updates to Filesystem.cpp/hpp and NetworkSockets.cpp/hpp to fix failing masterDavid Monahan
Signed-off-by: David Monahan <david.monahan@arm.com> Change-Id: I566c29754aa586167a938d2c2b4e5069a39b5e50
2020-01-22Add check to NetworkSockets.cpp to fix failing Android buildDavid Monahan
Signed-off-by: David Monahan <david.monahan@arm.com> Change-Id: Ieaa91fae464047c6eeff557b4e01dac09653473d
2020-01-21Add thin abstraction layer for processes and filesystemRob Hughes
This is used instead of some hardcoded Unix calls and means this code now works on Windows (This is a rework of a previous patch which used boost, now that I have been informed that we are trying to move towards removing boost). Change-Id: Ib0d11055279bbd7b710f086e9890369e3ecbfe9a Signed-off-by: Robert Hughes <robert.hughes@arm.com>
2020-01-21Add thin abstraction layer for network socketsRob Hughes
This makes SocketProfilingConnection and GatordMock work on Windows as well as Linux Change-Id: I4b10c079b653a1c3f61eb20694e5b5f8a6f5fdfb Signed-off-by: Robert Hughes <robert.hughes@arm.com>
2020-01-20Remove use of ArmNN.hpp from other public headersMatthew Bentham
Also remove it from armnnSerializer and armnnUtils. In general code within Arm NN should only include exactly what it needs. This will help keep compile times down, and reduces the need for a complete rebuild when anything in the public headers changes. ArmNN.hpp should only be provided as a convenience for user code where the user doesn't know enough of the API to decide which specific headers they need. Signed-off-by: Matthew Bentham <Matthew.Bentham@arm.com> Change-Id: I4ffcaa7662af4f88a1babf2bf17d03da6f77d665
2020-01-07IVGCVSW-4246 Enable -Wextra by defaultDerek Lamberti
!referencetests:218340 Change-Id: If24a604310d0363b1f09b406e4d53ebfeb106aad Signed-off-by: Derek Lamberti <derek.lamberti@arm.com>
2020-01-03IVGCVSW-4246 Clean build of parsers with -WextraDerek Lamberti
Change-Id: Ib00f185b431ab74fd9425d8f478bd2ddb182f74b Signed-off-by: Derek Lamberti <derek.lamberti@arm.com>
2019-12-09IVGCVSW-4210 Create a public API for the common backend filesMatteo Martincigh
* Create a public API for the common backend files * Move OutputHandler to armnn internal * Remove unused headers Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com> Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com> Change-Id: I3e86d908b021e3561befa9d45158d87d2cbb18c0
2019-12-05Replace boost logging with simple loggerDerek Lamberti
!referencetests:214319 * Reduces arm nn binary size ~15% * Also fixed test logging black hole issues Change-Id: Iba27db304d9a8088fa46aeb0b52225d93bb56bc8 Signed-off-by: Derek Lamberti <derek.lamberti@arm.com>
2019-11-29IVGCVSW-4209 Create a public API for the ArmNN UtilsMatteo Martincigh
* Moved the relevant armnnUtils headers to the new location: include/armnnUtils * Update the header usage throughout the source code !android-nn-driver:2387 Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com> Change-Id: I2ba15cebcacafad2b5a1a7b9c3312ffc585e09d6
2019-11-08IVGCVSW-4067 Change LayerGuid to use ProfilingGuidjaneil01
* Refactoring to enable ProfilingGuid * Add profiling includes to Android.mk Signed-off-by: Jan Eilers <jan.eilers@arm.com> Change-Id: Ieb25e15e3dc302eb42817d824ad8411ac76dcfe8
2019-11-07Escape angle brackets in dot file labelsRob Hughes
This was a bug that meant invalid dot files were produced due to MemCopy layers having a name including "->". Change-Id: If9f5b13d433f6a7328bf0ad8c7ec89cdce2462b0 Signed-off-by: Rob Hughes <robert.hughes@arm.com>
2019-11-06IVGCVSW-3837 Add support for per-axis quantization to reference ↵Aron Virginas-Tar
Convolution2d workload Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> Change-Id: I0ac08ba4864d48e6f64c4ac645dad8ea850be112
2019-11-05IVGCVSW-3836 Add support for Int32 per-axis scalesAron Virginas-Tar
* Added ScaledInt32PerAxisDecoder implementation * Added new case for Signed32 in MakeDecoder that returns a ScaledInt32PerAxisDecoder if the tensor info has multiple quantization scales Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> Change-Id: I8b3c11091644da993044d2a0fe2aba6b06b5af56
2019-11-04IVGCVSW-3835 Create Encoder and Decoder for QSymm8PerAxisKeith Davis
* Add QuantizedSymm8PerAxis to armnn DataType (types.hpp) and * Add Quantize and Dequantize template for int8 in TypeUtils to be able to compute QSymm8 of the weight * Create PerAxisIterator for per-axis quantization * Create QSymm8PerAxisDecoder * Create QSymm8PerAxisEncoder Signed-off-by: Keith Davis <keith.davis@arm.com> Change-Id: Ibcfe0288a197b7ee50b543bdbd77b7edb8a547c2
2019-11-01GitHub #292 Build the ML-examples using only ArmNN's public frontend APIMatteo Martincigh
* Refactoring of some of the public API headers Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com> Change-Id: I9006fe49945b10a6b83908b05aa4a6556639b491
2019-10-28Fix ExecuteNetwork no longer printing out the inference results,Matteo Martincigh
breaking some of the nightly builds * The TensorPrinter must be called regardless of the value of the output tensor files, it will automatically handle an empty file path by only printing the results to the console * Code refactoring Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com> Change-Id: I548ec7cf6d51badf78643c9a6c1c56ea9200142b
2019-10-25IVGCVSW-4018 Move QuantizeHelper.hpp to armnnUtilsAron Virginas-Tar
* Moved QuntizeHelper.hpp to armnnUtils * Reordered parameters for QuantizedVector and added default values for qScale and qOffset to make life easier when using the function for non-quantized types such as Float16 Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> Change-Id: I28c263dfa425f1316feccb4116839a84f5d568e5
2019-09-16IVGCVSW-3694 Add ArgMinMax implementation for RefNarumol Prangnawarat
* Add ArgMinMax implementation * Add utility function to get number of elements between axis * Add utility function to get unsigned axis * Unit tests for ArgMinMax function Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com> Change-Id: I7bc3d610dda9526190187eb87394a8ed7a4b5cdd
2019-09-12IVGCVSW-3663 Add utility function to expand tensor dimensionNarumol Prangnawarat
Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com> Change-Id: I54d2416be305db7d3fc15fb3123694ad6740b27d
2019-07-15MLCE-103 Add necessary enhancements to ModelAccuracyToolSiCong Li
* Evaluate model accuracy using category names instead of numerical labels. * Add blacklist support * Add range selection support Signed-off-by: SiCong Li <sicong.li@arm.com> Change-Id: I7b1d2d298cfcaa56a27a028147169404b73580bb
2019-07-02IVGCVSW-3307 Introduce RefTensorHandleMatthew Bentham
Use it for intermediate tensors on reference backend. Lays the groundwork for memory management in the reference backend. Change-Id: I7d3ee132cac31bde70ae6e1b815f4f0b03d550a6 Signed-off-by: Matthew Bentham <Matthew.Bentham@arm.com>
2019-06-25MLCE-103 Fix out-of-bound bug in ModelAccuracyCheckerSiCong Li
* Inside method AddImageResult, the number of generated output may exceed the size of m_TopK. Limit the check to the size of m_TopK. Signed-off-by: SiCong Li <sicong.li@arm.com> Change-Id: Ic7513ca27a283ef6d098d5aa0a94b4f17ff04f66
2019-06-07IVGCVSW-3223 Fix ref convolution performance regressionMatteo Martincigh
* Do not use DataLayoutIndexed::GetIndex for weights and inputs, as it causes a large regression in performance * It turned out that the calculation of the indexes for the weights and inputs was the way it was because of an optimization done many months ago * Reverted the relevant hunks and added some comments so we won't make the same mistake again in the future * Made the GetIndex function inline to speed up other usages Change-Id: I343b2ef0446993086f58b9dea1f0de0ba2d92216 Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com>
2019-06-05IVGCVSW-3142 Refactor DataLayoutIndexed and TensorBufferArrayViewMatteo Martincigh
for convenience * Added GetIndex method to DataLayoutIndexed * Refactored TensorBufferArrayView::Get to use the new method Change-Id: Iae08b2761bddeda9e935b25e6bc4985f2d386cd3 Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com>
2019-05-08IVGCVSW-2833 Add Dynamic QuantizationJim Flynn
Change-Id: Iba91e3f3625639f01d66f81a9f3e419e0e285d66 Signed-off-by: Jim Flynn <jim.flynn@arm.com>
2019-05-08IVGCVSW-2900 Adding the Accuracy Checker Tool and testsÉanna Ó Catháin
Change-Id: I4ac325e45f2236b8e0757d21046f117024ce3979 Signed-off-by: Éanna Ó Catháin <eanna.ocathain@arm.com>
2019-05-07IVGCVSW-3038 Move MakeInputTensors to armnnUtilsJim Flynn
Change-Id: I4352a645badde788b9e33b3675a9cc9c0fc3dc33 Signed-off-by: Jim Flynn <jim.flynn@arm.com>
2019-05-02IVGCVSW-3039 Unify BindingPointInfo declarationsJim Flynn
Change-Id: I3deb2b9a37e8a8f8f2ed93c64ed0656ae911e24c Signed-off-by: Jim Flynn <jim.flynn@arm.com>
2019-01-25IVGCVSW-2563 Fix bug in TfLiteParser::ParseConcatenationNattapat Chaimanowong
Change-Id: I8fbf27b383a821e062f72809cc2e269fcd18851c
2019-01-24IVGCVSW-2503 Refactor RefElementwiseWorkload around Equal and Greaterkevmay01
* Remove Equal and Greater from RefElementwiseWorkload * Create RefComparisonWorkload and add Equal and Greater * Update ElementwiseFunction for different input/output types * Update TfParser to create Equal/Greater with Boolean output * Update relevant tests to check for Boolean comparison Change-Id: I299b7f2121769c960ac0c6139764a5f3c89c9c32
2019-01-23IVGCVSW-2515 Fix compilation when TfParser is disabledMatthew Bentham
Change-Id: Ia0019134f76764cd4fe6ed9dc1423b8aba411d33
2019-01-22IVGCVSW-2467 Remove GetDataType<T> functionNattapat Chaimanowong
Change-Id: I7359617a307b9abb4c30b3d5f2364dc6d0f828f0
2019-01-14IVGCVSW-1656 Add Mean support to Tf ParserFerran Balaguer
Change-Id: I3d31d6b72be1984acdb51fd9e7b5488a7aa5d832
2019-01-07IVGCVSW-2421 Remove the template-based version of armnnUtils::PermuteMatteo Martincigh
in favor of a type-indepent implementation that takes void-pointers * The new implementation requires the size of the type to be passed to the function * Updated all the usages accordingly * Removed the old implementation no longer used !android-nn-driver:469 Change-Id: I37f4e6d62a38fbb8ec8c39bb559a2c54c83365d4
2019-01-04MLCE-77 Depthwise Convolution with depth multiplier > 1 doesn't workMatteo Martincigh
* Unified ArmNN's weight format to [ M, I, H, W ] for the depthwise convolution * Added conversion utilities to permute/reshape the weights as appropriate when using CL and Neon backends * Updated the reference implementation of the convolution * Updated the relevant unit tests accordingly !android-nn-driver:459 Change-Id: I07d0818efa9d1ca1e5dad82983aac1fe78eadb18
2019-01-02IVGCVSW-2353 Ignore control inputs in TensorFlow parsernarpra01
* Allow control inputs from TensorFlow graph but ignore them in ArmNN graph. * Add utility function to test ArmNN graph structure. * Add ArmNN graph structure tests in TensorFlow paresr to ensure that control inputs are ignored in ArmNN graph as well as their inputs that are not used anywhere else. Change-Id: Ib0ea0d2df85e3fc79b748fa4c9d20e0649352bc1
2018-12-05IVGCVSW-2264 Move DataLayoutIndexed to armnnUtilsMatteo Martincigh
* Since DataLayoutIndexed is now required in the TF parser, this changes move it to the armnnUtils library so that it'll be accessible by the armnnTfParser * Modified CMake files and Android.mk files accordingly Change-Id: Ie2620359ef288aeff64cb9e9bec068a466eee0e9
2018-11-20IVGCVSW-2144: Adding TensorUtils classNina Drozd
* helper methods for creating TensorShape and TensorInfo objects Change-Id: I371fc7aea08ca6bbb9c205a143ce36e8353a1c48
2018-11-19IVGCVSW-2167: Run parser unit tests on the reference backend onlyAron Virginas-Tar
Change-Id: Ib11c3d36c7109198da7266955414580e8fb916b5
2018-11-02IVGCVSW-1946: Remove armnn/src from the include pathsAron Virginas-Tar
Change-Id: I663a0a0fccb43ee960ec070121a59df9db0bb04e
2018-10-25IVGCVSW-2058: Remove ARMCOMPUTE(CL/NEON)_ENABLED and ARMCOMPUTENEON_ENABLED ↵Aron Virginas-Tar
from src/armnnUtils/ParserPrototxtFixture.hpp Change-Id: Ief836fb80c4c966f1b76c9429d4a7fb644ceb73d
2018-10-25IVGCVSW-2067 : dynamically create workload factories based on the backends ↵David Beck
in the network Change-Id: Ide594db8c79ff67642721d8bad47624b88621fbd
2018-10-22IVGCVSW-2019 : replace Compute enum in the backend preferences listDavid Beck
Change-Id: Ie7549fd27378acfa97e68d098e338b8c9d4ea5d2
2018-10-22IVGCVSW-1914 Investigate CONV_2D failure on FP16 on AndroidSadik Armagan
* Round to nearest instead of round to intermediate (default) * Compute Library also round to nearest Change-Id: I0c71e2ffd28e4e662188fd47d26ec8b538d4ba21
2018-10-10IVGCVSW-1929: Fix for this defect (QASYM8 no scale)jimfly01
* Now hand in an optional vector of strings to Optimize function in which errors/warning messages are placed. * Optimize function changed to check outputs of each layer. If they are Quantized 8 bit but the scale has not been set an error message is added for each such output. * Unit test modelled on defect report added to exercise the fix. !android-nn-driver:152483 Change-Id: If9901f5324a516f1ab62858266b38f98dae16201
2018-10-10IVGCVSW-1913: Fix for ValidationTest.concat_float_3_relaxedarovir01
* Added RefPermuteFloat16Workload to serve as a fallback when CL does not support the required permute configuration for FP16 * Move Half.hpp to armnnUtils as the utils library should not be including private header files from the armnn library Change-Id: Ibf0f698451e8406f7ed7cce470dab60b6d16361d
2018-10-10IVGCVSW-1787 Add Support for Concatenation on TfLite parserSadik Armagan
* Concatenation Parser function added to the TfLite Parser Change-Id: I42a42cd765ea09a30841c66b1942b9e09a876b10
2018-09-17IVGCVSW-1807 : change license text in file headersDavid Beck
All changes are the same: // // Copyright © 2017 ARM Ltd. All rights reserved. -// See LICENSE file in the project root for full license information. +// SPDX-License-Identifier: MIT // Change-Id: I37eae011411133663ca9d2b059714d92f8bf8e24