Hyunsoo Park [Thu, 4 Feb 2021 10:45:39 +0000 (19:45 +0900)]
CLtuner generator initial drafts
It creates tune file enables optimized inference.
Change-Id: I72b209cf320e41da83c3e9cedf8efb6689f18719
Signed-off-by: Hyunsoo Park <hance.park@samsung.com>
Tae-Young Chung [Wed, 31 Mar 2021 07:01:42 +0000 (16:01 +0900)]
Add iniparser to PC_REQUIRED
Change-Id: I77becd79c2271de775996d028dd6b9abcfc96200
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Wed, 10 Mar 2021 09:05:36 +0000 (18:05 +0900)]
Change members of inference_engine_layer_property structure,
and change vector<inference_engine_tensor_buffer> to map<string, inference_engine_tensor_buffer>
This patch is to use inference_engine_tensor_info and inference_engine_tensor_buffer
based on input/output layers' name.
Change-Id: I18d3e7ae80a8c2a1e6236938571b8f22b12b2e1e
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Inki Dae [Mon, 8 Feb 2021 05:04:34 +0000 (14:04 +0900)]
test: Update descriptions to test case parameters
Updated descriptions to test case parameters, which
describe parameters for each test case correctly.
Change-Id: Id7d6b992bbea67e5354774fee03671a9933e274e
Inki Dae [Mon, 8 Feb 2021 04:51:09 +0000 (13:51 +0900)]
test: Add measurement cases for CLTuner
Added several measurement cases to compare the inference performance
of ARMNN CLTuner.
This patch measures the performance in following order,
1. Generate CLTuner files for reference models.
2. Measure inference performance without CLTuner.
3. Measure inference performance with CLTuner.
Change-Id: I0336a472ec381e4d89bc1491b9a458f05f55c71f
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Sun, 7 Feb 2021 23:53:45 +0000 (08:53 +0900)]
test: Add verification code for CLTuner feature
Added verification cases for CLTuner feature, which
verify other reference models, quantized image classification,
object detection, face detection and pose estimation.
Change-Id: I250152282ee3364865c9d10d020aead687eeb0d9
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Thu, 4 Feb 2021 09:22:49 +0000 (18:22 +0900)]
test: Use some macros for test case parameters
Added some macros for tflite and cltuner test cases
to avoid code duplication.
Changelog v1:
- Correct macro names like below.
*IC_OD* -> *OD*
*IC_FD* -> *FD*
*IC_PE* -> *PE*
Change-Id: I1f8902c2779a4889a315a9402f290502e86002c0
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Thu, 4 Feb 2021 08:35:29 +0000 (17:35 +0900)]
test: Rename test model enumeration values
Just let's keep name consistency.
Change-Id: Id8e593a37160a49929184afc2d8f8afcf7948dc1
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Thu, 4 Feb 2021 04:49:04 +0000 (13:49 +0900)]
test: Introduce GetModelString function
Added GetModelString function to avoid code duplication.
Converting a given model type to its corresponding string
was duplicated in several test cases. We can share the code
by introducing GetModelString function which returns
a string corresponding to a given test model type.
Change-Id: Iba325074aff6fa40ac5621b4c6b519a75774d3dc
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Thu, 4 Feb 2021 03:58:00 +0000 (12:58 +0900)]
test: Do not return in error case
Google test framework provides assertion macro so
we don't have to return in error case.
It must be enough with the assertion macro.
Change-Id: I9a8f1375e5ddfbe06a2803567a3eea8f11f1e74d
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Fri, 29 Jan 2021 06:31:59 +0000 (15:31 +0900)]
test: Add CLTuner verification code
This patch adds CLTuner verification code which generages
a tuner file and then requests an inference with the generated
file for each tuning mode and image classification model.
Change-Id: I82dd0f3de7ba3f1ba8213241eca5f175490c575b
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Thu, 21 Jan 2021 07:36:37 +0000 (16:36 +0900)]
Add CLTuner support
Added CLTuner support.
For CLTuner support, this patch adds a new internal API, SetCLTuner function.
This function passes user-given CLTuner configuration to MLAPI and ARMNN
backends before inference engine loads a given model file.
[How to use]
There are two CLTuner modes:
READ : inference engine refers to a given tuned file for inference.
GENERATION : inference engine generates a tuning file to a given model file.
And there are three CLTuner types:
EXHAUSTIVE : The tuning speed is slow but aggressive optimization.
NORMAL : The tuning speed is reasonable and reasonable optimization.
RAPID : The tuning speed is fast but leient optimization.
- For CLTuner read mode,
inference_engine_cltuner cltuner = {
.active = true,
.update = false,
.cltuner.type = INFERENCE_ENGINE_CLTUNER_READ,
};
- For CLTuner generation mode,
inference_engine_cltuner cltuner = {
.active = true,
.update = true,
.cltuner.type = INFERENCE_ENGINE_CLTUNER_{EXHAUSTIVE |
NORMAL |
RAPID},
};
inference_engine_capacity capacity;
engine->GetBackendCapacity(&capacity);
if (capacity.cltuner_supported)
engine->SetCLTuner(&cltuner);
Change-Id: Id1cc9513e444dfad21b933b46535c1b810f4a4d6
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Wed, 24 Mar 2021 06:27:03 +0000 (15:27 +0900)]
Change behavior to MLAPI type
The behavior of INFEENCE_BACKEND_MLAPI type is fixed with
NPU device according to policy change so this patch makes
it to support only NPU device when user requested an inference
with INFERENCE_BACKEND_MLAPI type.
Change-Id: I25afff6cb8ff346a76bddde10fa021d11ca2b22f
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Wed, 24 Mar 2021 03:55:02 +0000 (12:55 +0900)]
Drop duplicated BindBackend function
Change-Id: I5cbdb64420ce07e5cba9941bd3d76a14c3e90552
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Thu, 18 Mar 2021 12:04:25 +0000 (21:04 +0900)]
Apply a new policy for inference engine backend path
This patch applies a new policy for inference engine backend path.
Inference engine interface framework has a role to decide which inference
engine API framework - internal or ML Single API - will be used according
to user desired inference requests.
In runtime, inference engine interface framework loads ini file -
/etc/inference/inference_engine_backend_path.ini - and parse it
to check which API framework current Platform wants to use for a given
backend.
So this patch applies below role according to user desired inference requests.
User INI configuration file API framework
---------------------------------------------------------------
ONE - MLAPI
MLAPI - MLAPI
CUSTOM device(NPU) - MLAPI
ARMNN - Internal
ARMNN MLAPI MLAPI
TFLITE - Internal
TFLITE MLAPI MLAPI
OPENCV - Internal
--------------------------------------------------------------
Legends
-------
- : nothing declared.
Internal : internal plugin will be used.
MLAPI : ML Single API will be used.
Change-Id: If2f310171671e911717792538cc6977c46f2bcd8
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Tue, 9 Feb 2021 04:39:43 +0000 (13:39 +0900)]
Allow user given ini file path
This patch allows user to pass a full path of ini file which
contains default tensor filter types for MLAPI backend.
Change-Id: Iaecf5bae5ad567570e4b57fe3cf109088b95359e
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Wed, 27 Jan 2021 05:34:04 +0000 (14:34 +0900)]
test: Use a macro instead of hard-coded count
Change-Id: I1c0a5dd47d67a7a9eca725d932d0a73001ca85e2
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Thu, 21 Jan 2021 07:50:28 +0000 (16:50 +0900)]
test: Fix invalid device type issue
Change-Id: I718d815ccfd0c3edf6bcc7d789bbdcf4c33e3020
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Wed, 9 Dec 2020 10:42:40 +0000 (19:42 +0900)]
Set profile data to 0 at failure
Do not skip updating the profile data if the profiling failed.
Instead, update all data to 0 for visualizer.
Change-Id: I2f145e462716ad221bfa57a9831c606025059f54
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Wed, 9 Dec 2020 06:36:09 +0000 (15:36 +0900)]
Fix backend name when profiling
This patch corrects a backend name when profiling via MLAPI.
In case of MLAPI backend, there are two cases. One is "ONE",
and other is "TFLITE" in default. So this patch changes actual
backend name by checking backend_type in runtime when logging
the profile data, backend name.
Change-Id: I0126cd6d427aee760df6224b2813b532d584d287
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Tue, 8 Dec 2020 07:57:31 +0000 (16:57 +0900)]
test: Clean up profiler
Change-Id: I1894b47931c46ee341be6415d3cab4020dda4575
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Wed, 25 Nov 2020 06:48:42 +0000 (15:48 +0900)]
Use static profiler object instead of dynamic one
Only one profiler object is needed per a inference engine common class
so use static profiler object instead of dynamic one.
Change-Id: I29980442617aaca6e50b07392c50c74154a3ac29
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Wed, 25 Nov 2020 05:27:00 +0000 (14:27 +0900)]
Stop profiling if inference failed
Change-Id: I4ed0f45e7f34677470f81c2161370ff89d15f467
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Tue, 3 Nov 2020 09:00:39 +0000 (18:00 +0900)]
Set target device correctly
Change-Id: I0d822d8e28d1c497c9371741397d1018161a09af
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Mon, 2 Nov 2020 08:20:35 +0000 (17:20 +0900)]
test: Add AIC's hand gesture model verification support
Change-Id: I2beab7041e7b57f93f4fef22e2e7e8178470a3b2
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Thu, 29 Oct 2020 06:21:31 +0000 (15:21 +0900)]
test: Add reference model profiling support for ONERT
Change-Id: I48bcc8f959b3a803b75a0ea76cdf01c19b58ed92
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Tue, 27 Oct 2020 08:34:27 +0000 (17:34 +0900)]
Introduce default tensor filter type support for MLAPI
This patch introduces default tensor filter type support for MLAPI.
In case that user requests a inference with INFERENCE_BACKEND_MLAPI type,
inference engine mlapi backend requests the inference to a tensor filter
type corresponding to a given device type such as CPU, GPU or NPU.
1. If device type is CPU or GPU then it requests a inference to
MLAPI backend with a tensor filter type written in mDefault_MLAPI_Backend[0].
2. If device type is NPU then it requests a inference to
MLAPI backend with a tensor filter type written in mDefault_MLAPI_Backend[1].
Change-Id: I898a993c15ec24504b663b49ba5ac48ac4a25ff4
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Mon, 5 Oct 2020 05:09:10 +0000 (14:09 +0900)]
test: fix a type
Change-Id: Ia3ced406afc99243457377cde2459e13198f7d58
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Tue, 22 Sep 2020 02:42:15 +0000 (11:42 +0900)]
test: Add NIKE-M board support
Change-Id: I5809659098c55189e13b969befe46224cfa0f3ff
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Tue, 25 Aug 2020 08:18:16 +0000 (17:18 +0900)]
Check tensor data type correctly
Change-Id: I47a65126b6a5532477cd7b3fd2b30dc2f1153348
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Tue, 25 Aug 2020 08:14:32 +0000 (17:14 +0900)]
Add uint64 and int64 data type
Change-Id: I24764b01a5873e79924e883ab53b50320a7b26cc
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Tue, 30 Jun 2020 06:59:07 +0000 (15:59 +0900)]
test: Add Odroid-XU3 board support
Change-Id: I463523251a6fb5c21d035019dcd0f93c8c835453
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Tue, 16 Jun 2020 08:27:52 +0000 (17:27 +0900)]
test: Add NNStreamer's ML Single API backend test cases
Change-Id: I8d0d4f4163328ad6907f8e4fb99b0d4832127e84
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Tue, 16 Jun 2020 07:41:41 +0000 (16:41 +0900)]
Change in-house NN runtime backend name
Official name of NNFW is ONE(On-device Neural Engine)
so use it instead of NNFW.
Change-Id: I42ea92df4d9e3e7694d16b673b26db9e375575c0
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Tue, 9 Jun 2020 07:04:40 +0000 (16:04 +0900)]
test: Perform test cases depending on current HW capability
This patch adds a new feature which detects Machine ID in runtime,
and then performs test cases properly depending on whether current
Platform is able to use GPU or NPU for the inference.
Linux kernel exposes device tree sysfs files which describe
HW information so this patch reads /sys/firmware/devicetree/base/model
file to get Machine name in runtime.
Based on this information, test case and profiler applications
decide whether inference should be performed on a given accelerator -
GPU or NPU - according on pre-defined HW table which contains
what kinds of HW accelerators can be used for the inference.
Change-Id: If052c9860dbb72f36c73baf6eb52f627bdde08a9
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Thu, 4 Jun 2020 05:31:45 +0000 (14:31 +0900)]
Fix coding style based on Tizen C++ Coding Rule
Tizen C++ Coding Rule:
https://wiki.tizen.org/Native_Platform_Coding_Idiom_and_Style_Guide#C.2B.2B_Coding_Style
Change-Id: I71226dee9f5192292641a50bf5d5774133f34272
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Wed, 3 Jun 2020 08:42:34 +0000 (17:42 +0900)]
mv_inference: Change a function name from SetPluginType to SetPrivateData
This patch changes a function name from SetPluginType to SetPrivateData
to utilize it as more purposes which may be needed to pass some backend
private data to a given backend before loading a model file.
And also this patch makes IInferenceEngineCommon to become interface class
by declaring SetPrivateData funtion as a pure virtual function.
Change-Id: Icc0db970ca2b9d44e3954c50e837ebccc996b83d
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Tue, 2 Jun 2020 09:36:23 +0000 (18:36 +0900)]
Change MLAPI backend string to "mlapi"
Change-Id: I6914c71d00b59cadd3145bcd725129c827b1b6ce
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Tue, 2 Jun 2020 09:12:42 +0000 (18:12 +0900)]
Change a backend type from VIVANTE to MLAPI
Change-Id: Ia4210279f8efc4875f0c0db813c9f03d8411f7ff
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Mon, 1 Jun 2020 02:16:53 +0000 (11:16 +0900)]
Add ML Single API support of NNStreamer
This patch adds ML Single API support of NNStreamer.
On MediaVision, NNFW(in-house NN Runtime) and Vivante NPU
will be controlled by inference-engine-mlapi backend
through ML Single API of NNStreamer.
As one more backends should be controlled by the inference-engine-mlapi
backend, this patch introduces a new function, SetPluginType,
which lets ML Single API know which tensor filter - NNFW or Vivante NPU -
should be used, and adds two backend types - Vivante and NNFW.
Change-Id: Iccf9fe97f5ec50c5c1bfd7bab48927e0f343f182
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Thu, 14 May 2020 05:40:14 +0000 (14:40 +0900)]
test: Enable profiler for inference test
This patch enables and disbles the inference engine profiler
according to a given inference test request with a given mode,
storing profile data on file or just printing out it on
console screen.
Change-Id: I1528ecfb593d11a4686e4c388c01bb8dff9b6b97
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Thu, 14 May 2020 07:28:37 +0000 (07:28 +0000)]
Merge "rename inference engine profiler relevant files" into tizen
Inki Dae [Thu, 14 May 2020 05:02:34 +0000 (14:02 +0900)]
rename inference engine profiler relevant files
This patch renames
src/inference_engine_profiler.cpp -> src/inference_engine_common_profiler.cpp
include/inference_engine_profiler.h -> include/inference_engine_common_profiler.h
because the name is conflicted with the one of inference engine profiler test file.
Change-Id: Ibce9ba539b02826601eac4f8eebe16cf32dabf2d
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Hyunsoo Park [Thu, 14 May 2020 04:38:24 +0000 (13:38 +0900)]
SPEC:Add gcov option
For measuring line coverage, gcov option is added to spec file.
Build command is like below.
Usage:
gbs build -A armv7l --include-all --define "gcov 1"
Change-Id: Idf255054036adf8edeaddd51372834c92f9312a5
Signed-off-by: Hyunsoo Park <hance.park@samsung.com>
Inki Dae [Wed, 13 May 2020 09:00:43 +0000 (18:00 +0900)]
test: Add OpenCV backend test support
Change-Id: Ic44af23e2cf9b54aa84e6a7e502217466e3b9556
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Wed, 13 May 2020 08:09:10 +0000 (17:09 +0900)]
test: Add new test cases for a new BindBackend function
Change-Id: I9829475e6fe9bbe3794d7e01a1c523fbaa0e6c34
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Wed, 13 May 2020 08:07:59 +0000 (17:07 +0900)]
Add a new BindBackend function with backend type
This patch adds a new BindBackend function which requires
backend type as a parameter.
Change-Id: I842be4033d8cfd2cc3f2e455bd02123c95f126b4
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Wed, 13 May 2020 07:04:55 +0000 (16:04 +0900)]
Handle exception cases to BindBackend
This patch handles below two exception cases properly,
- A case that user calls BindBackend second time.
- A case that user calls BIndBackend with null parameter.
Change-Id: Ia104226b81b5fcb56fe0111a5d74f27ec4d0ed01
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Wed, 13 May 2020 06:57:51 +0000 (15:57 +0900)]
Drop mBackendLibName member
We can just use local varible instead of member one
so drop it.
Change-Id: I2f84e401b0af07a56b2bf1793d36da37980dceaf
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Wed, 13 May 2020 06:50:03 +0000 (15:50 +0900)]
Drop SetLibraryPath and SetBackendEngine functions
These functions aren't needed anymore so drop them.
Change-Id: Ifee9279068efdbe7e5aa3e2937c00a7efa5f4c07
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Wed, 13 May 2020 06:45:04 +0000 (15:45 +0900)]
Add InitBackendEngine function for a new bind function
This patch introduces a new private function, InitBackendEngine
which loads library file with a given backend library path.
This function will be used by other bind function which
passes backend type instead of name.
Change-Id: I54b1970b72c8cee258c9d33e4bd2a32ff5132a2f
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Wed, 13 May 2020 06:20:28 +0000 (15:20 +0900)]
test: Add set input and output layer test cases
This patch adds below new test cases,
- SetInputLayer positive and negative tests.
- SetOutputLayer positive and negative tests.
Change-Id: I3ec64d821b747b5c7a4365d7f56e1d16a15ec2a7
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Wed, 13 May 2020 06:18:33 +0000 (15:18 +0900)]
Check if a given property is valid or not
Change-Id: Icd7ba4c1a68fbd215bb075fdd2e8255544dec86b
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Tue, 12 May 2020 09:10:46 +0000 (18:10 +0900)]
Clean up target device type verification code
INFERENCE_TARGET_MASK definition isn't needed so drop it
and use INFERENCE_TARGET_MAX instead.
Change-Id: I913f29f6963be95614307e12a0c8abb381b8c1c4
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Tue, 12 May 2020 07:28:33 +0000 (16:28 +0900)]
test: update test cases
This patch adds below test cases,
- Two negative tests for GetBackendCapacity callback.
- Two negative tests and one positive test for SetTargetDevices callback.
- Two negative tests for Load callback.
Change-Id: I30c3703d73be91455a0ac2afc8970f81731a7e43
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Tue, 12 May 2020 05:38:49 +0000 (14:38 +0900)]
test: mitigate code duplication with lambda functions
Inference engine initialization is common to all test cases
so move the initialization code to lambda funtions and use them instead.
Change-Id: Ied4bfd77c19ceb3855f6e070a548cda6418e547e
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Tue, 12 May 2020 07:04:26 +0000 (16:04 +0900)]
Check if inference target types are valid or not
Change-Id: I8ad50b13b7377dde306d052267705f5465062c32
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Tue, 12 May 2020 06:27:59 +0000 (15:27 +0900)]
check inference engine backend handle correctly
inference engine backend callbacks should be requested
after the backend handle is checked if it is valid or not.
Change-Id: I15d25664186710d455835ed6d7055317d43275ca
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Tue, 12 May 2020 06:16:20 +0000 (15:16 +0900)]
handle an error case to GetBackendCapacity correctly
Change-Id: I86f633f9b8b43a375b80e662d081a5537890e796
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Mon, 11 May 2020 09:28:42 +0000 (18:28 +0900)]
Return an error value correctly
Change-Id: I4b2f9fd312626277ffa98b391ef8d8229038a0fc
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Mon, 11 May 2020 08:54:38 +0000 (17:54 +0900)]
packaging: drop capi-base-common dependency
capi-bace-common package isn't required anymore.
Change-Id: I49afc28d97ddf8f7be808c16a3d6ccf72e07b25f
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Fri, 8 May 2020 08:27:20 +0000 (17:27 +0900)]
Clean up class member initialization
Change-Id: I29328408fe8f7495ba71ef26e8df08f72a0d4109
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Fri, 8 May 2020 06:46:40 +0000 (15:46 +0900)]
test: use smart pointer instead of raw one
Change-Id: I04e4f4e2f887d1850b4e2440a6d2f06a6029b546
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Fri, 8 May 2020 06:29:45 +0000 (15:29 +0900)]
Clean up constructor functions
Constructor function of InferenceEngineCommon class doesn't need
any parameter so drop other unused functions.
Change-Id: Icb806d10050b55456929b6bca5e2901fee2b0354
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Thu, 7 May 2020 09:14:11 +0000 (18:14 +0900)]
Fix UNINIT.CTOR.MANY issues
Change-Id: Ieef228cea4ac43b0da154659ca408b04ab726a35
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Thu, 7 May 2020 09:05:57 +0000 (18:05 +0900)]
Fix UNREACHABLE_CODE issues
Change-Id: Idb729c0e74c21e60285df6dd1ffd1a0f9f217aeb
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Wed, 29 Apr 2020 03:14:39 +0000 (12:14 +0900)]
test: rename a test file
Just rename inference_engine_test.cpp to inference_engine_profiler.cpp
Change-Id: Ia20af23be4f6256dd969eb19a44ff5d780b9ad12
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Wed, 29 Apr 2020 03:09:06 +0000 (12:09 +0900)]
test: avoid code from duplicated
This patch moves common code from test files to
a new file, inference_enigne_test_common.cpp, to avoid
code from duplicated.
Change-Id: Id516b91298bc9fbef779d6568de449b9538ecba6
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Wed, 29 Apr 2020 02:56:37 +0000 (11:56 +0900)]
test: add inference_engine_tc
This patch adds a inference_engine_tc.cpp which
contains test cases moved from inference_engine_test.cpp.
Change-Id: I3e60b74b79a574f169d726447118dce883f58cfe
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Thu, 23 Apr 2020 07:19:11 +0000 (16:19 +0900)]
Drop gmock dependency
For gtest based tc, gmock isn't required.
Change-Id: I7eed61f7009e5c8dc5a6703cdcedac0045f963a0
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Mon, 20 Apr 2020 01:36:56 +0000 (10:36 +0900)]
Fix build error due to the use of wrong enumeration
Change-Id: Ib92b31e055544322ea394329a24a380247eda5ab
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Fri, 17 Apr 2020 07:40:05 +0000 (16:40 +0900)]
clean up enumeration prefix
Change-Id: I48bfa0d402dcf0f68f8f6f1afde34afb35ae84c2
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Fri, 17 Apr 2020 07:33:41 +0000 (16:33 +0900)]
clean up header file
Change-Id: I0e3108bb59b0a09a1993264cedc07194287b35a8
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Tue, 14 Apr 2020 01:22:11 +0000 (10:22 +0900)]
packaging: drop opencv buildrequires
opencv package isn't required anymore.
Change-Id: Iea34932c12a15f7e7d34e099924f632a10dd29a4
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Kwanghoon Son [Fri, 10 Apr 2020 03:58:08 +0000 (12:58 +0900)]
Add dldt verify data
update bin date (banana img) file
Change-Id: I5adc21e30f4afe5bf2ea41d0847f3399fb8ea6de
Signed-off-by: Kwanghoon Son <k.son@samsung.com>
Kwanghoon Son [Fri, 10 Apr 2020 03:27:38 +0000 (12:27 +0900)]
Add DLDT inference result test
add gtest
Change-Id: Ie3a25292f0c109277c4ea1c95865a7162d5126ac
Signed-off-by: Kwanghoon Son <k.son@samsung.com>
Kwanghoon Son [Thu, 9 Apr 2020 23:29:55 +0000 (08:29 +0900)]
Tensor shape type change to size_t
shape means positive value.
change int to uint(size_t)
Change-Id: I94fb4892b8de90ac64e7e19dc46ac494cfe100f2
Signed-off-by: Kwanghoon Son <k.son@samsung.com>
Tae-Young Chung [Thu, 9 Apr 2020 04:48:44 +0000 (13:48 +0900)]
Fix typos CPU to GPU
Change-Id: Id39027b06c1b5614044c8c207fd287f9fd77729e
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Kwanghoon Son [Thu, 9 Apr 2020 01:23:19 +0000 (10:23 +0900)]
dldt input format change
dldt bin is hard to figure out with data format.
change bin to xml file.
Change-Id: I4439a993600729fe90d5d24942510ee4388002e5
Signed-off-by: Kwanghoon Son <k.son@samsung.com>
Inki Dae [Wed, 8 Apr 2020 10:51:58 +0000 (19:51 +0900)]
profile: leave memory usage text
Change-Id: Ibbc219629cfca865dee284662f221d7a0e3b0103
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Wed, 8 Apr 2020 10:38:00 +0000 (19:38 +0900)]
test: use specific profile data file name
Change-Id: Id886f7d1314c13fef9fbf7d4d8d08b74a7b35257
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Kwanghoon Son [Wed, 8 Apr 2020 06:50:39 +0000 (15:50 +0900)]
dldt common test_2 added.
dldt needs xml and bin files.
Change-Id: I4161a6869744516fd502a29545ac14b7229e2ffd
Signed-off-by: Kwanghoon Son <k.son@samsung.com>
Kwanghoon Son [Wed, 8 Apr 2020 06:28:33 +0000 (15:28 +0900)]
Print custom target
Myriad is custom target.
Change-Id: Ib7ddc231d3fe8147e1b3a5152b5cc784b9be90af
Signed-off-by: Kwanghoon Son <k.son@samsung.com>
Inki Dae [Wed, 8 Apr 2020 05:53:10 +0000 (14:53 +0900)]
Add Caffe model support to start_profiler.sh
Change-Id: I7e15adb651f7ad9065e2d9e11c89c888ab272fff
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Wed, 8 Apr 2020 05:14:59 +0000 (14:14 +0900)]
test: fix build error
Change-Id: I70daccb7a0e0bffecd760b0e8741996b8098c61c
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Tae-Young Chung [Wed, 8 Apr 2020 04:09:26 +0000 (13:09 +0900)]
test: Add OPENCV backedn test cases
Change-Id: Ie39cad370751d89adba608ca3c9e781369c52bba
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Inki Dae [Tue, 7 Apr 2020 06:21:53 +0000 (15:21 +0900)]
Add memory usage profiling feature
This patch adds memory usage profiling feature while in runtime.
Basially, there are some procfs to collect memory usage consumed
by current process, and we use /proc/self/stat.
These memory usage data are updated by Linux kernel scheduler so
they should be measured before and after current process.
As for this, this patch adds a new script file, start_profiler.sh.
SO if you want to profile exact memory usage in runtime then
run ./start_profiler.sh on Target.
Ps. the memory usage data can be measred by inference_engine_test app
but the data wouldn't be exact.
Change-Id: I5416587d4847c65538768b15f69f1e23862e2837
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Kwanghoon Son [Mon, 6 Apr 2020 05:04:43 +0000 (14:04 +0900)]
Gtest dldt backend support
dldt myriad backend added.
Change-Id: I8ef6f33a36ed795a04de0658412f46d391b8aa20
Signed-off-by: Kwanghoon Son <k.son@samsung.com>
Inki Dae [Sun, 5 Apr 2020 23:51:46 +0000 (08:51 +0900)]
Fix prefix to profiler enumerations
Change-Id: I81d5639e46b99111e79b7b21acae55ef6f8d3393
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Fri, 3 Apr 2020 03:10:25 +0000 (12:10 +0900)]
test: Add TFLITE backend test cases
Change-Id: Ie27c4cb3b14b5f27883712d6f5dc46f358a02d3d
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Fri, 3 Apr 2020 02:03:00 +0000 (11:03 +0900)]
Add barrier enumeration to inference_tensor_data_type_e
Change-Id: I7b5d659f749bf20273e485ca0a5378137a752cdc
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Hyunsoo Park [Thu, 2 Apr 2020 09:13:49 +0000 (18:13 +0900)]
Block memory release in case of tensorflow.
Change-Id: Ibb2e79822e141e3ed7216156a38ab26fcd720e02
Signed-off-by: Hyunsoo Park <hance.park@samsung.com>
Inki Dae [Thu, 2 Apr 2020 06:59:15 +0000 (15:59 +0900)]
Verify tensor buffer and property values
This patch makes sure to verify whether tensor buffer vector
and propery value contains correct data or not.
Change-Id: I01a05f5530e879cc320d1d3ef38d67e342e3ac87
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Thu, 2 Apr 2020 00:51:23 +0000 (09:51 +0900)]
test: enable inference engine profiler
This patch enables the inference engine profiler.
The profile data will be stored to 'dump.txt' file
with Markdown syntax.
Change-Id: Ie70d057244a4a56e9208bd2d2e4d0accecce4122
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Thu, 2 Apr 2020 00:24:52 +0000 (09:24 +0900)]
Add Inference engine profiler support
This patch adds a profiler support for inference engine.
For now, only latency profiling is support. For other, they
will be suppored later.
The profiler isn't built in inference engine framework so
other users can use the profiler anytime using some API.
And also, Inference engine framework provides some API for
profiler like below,
[How-to-use]
InferenceEngineCommon *engine = new InferenceEngineCOmmon(&config);
...
// Enable the use of profiler.
// Ps. Make sure to create InferenceEngineCommon object
// before enabling profiler.
ret = engine->EnableProfiler(true);
// Profile data will be stored to dump.txt file.
// If you want to just print out the profile data on console screen
// then call DumpProfileToConsole instead.
ret = engine->DumpProfileToFile("dump.txt");
All profile data will printed out to console screen or stored
to a given file in Markdown syntex[1] like below,
"
backend|target devices|model name|Function name|Latency(ms)|Memory Usage(kb)
--|--|--|--|--|--
armnn|CPU|/usr/share/capi-media-vision/models/IC/tflite/ic_tflite_model.tflite|Load|1799|
armnn|CPU|/usr/share/capi-media-vision/models/IC/tflite/ic_tflite_model.tflite|Run|95|
***
"
Please use Markdown syntax aware editer such as the edit box of github.
[1] https://daringfireball.net/projects/markdown/syntax
Change-Id: I2f643bb0b78410d48f94de2e39d986a2d646d97b
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Fri, 27 Mar 2020 06:13:08 +0000 (15:13 +0900)]
Rename engine to mBackendHandle
Change-Id: I0ef2b66e57062fbd98b2b92189807198d36bfd51
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Fri, 27 Mar 2020 04:57:39 +0000 (13:57 +0900)]
Fix SVACE and Coverity issues
Change-Id: I525cd68275dcbedade157dd3e494150762ed1b95
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Fri, 27 Mar 2020 03:40:26 +0000 (12:40 +0900)]
Rename hanel to mBackendModule
Just for the cleanup, rename handler to mBackendModule.
The handle points to backend library loaded by dlsym function.
Change-Id: I313d069087389c65296dbda368666b6d5079c50c
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Wed, 25 Mar 2020 06:41:08 +0000 (15:41 +0900)]
Change directory name from common to src
Let's just use generic directory name, src, instead of specfic one,
common. We already dropped inference framework so we don't have to
adhere to use common directory name.
Change-Id: Ib0947dd90f5ee5c5d935d75435a4f36c1b869146
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Mon, 9 Mar 2020 06:07:05 +0000 (15:07 +0900)]
test: Fix indentation
This patch uses a tab instead of space
Change-Id: I275644423b8a5e481649c17a86ee35b15add9960
Signed-off-by: Inki Dae <inki.dae@samsung.com>