Inki Dae [Tue, 3 Nov 2020 09:00:39 +0000 (18:00 +0900)]
Add hand gesture model profiling with TFLITE 2.3 gpu delegate
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>
Inki Dae [Mon, 9 Mar 2020 05:20:14 +0000 (14:20 +0900)]
test: Drop unnecessary model load tests
This patch drops unnecessary model load tests because it's enough
to test only one model loading for load interface verification.
Change-Id: If7e753d0d44bb6e1dd11d3e4dce355a070b052fd
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Mon, 9 Mar 2020 05:17:01 +0000 (14:17 +0900)]
test: Add a input binary file for quantized model inference test
Change-Id: Ia4d6ae0c7729bbb67c562f11cb63c37522593349
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Mon, 9 Mar 2020 05:15:24 +0000 (14:15 +0900)]
test: Add quantized model inference test
This patch adds a quantized mobilenetv1 model inference test.
Change-Id: I214c4aecc2ba07cac31fce42d28307ace09b9eda
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Mon, 9 Mar 2020 04:15:18 +0000 (13:15 +0900)]
test: fix a comment
Change-Id: I892180e682bbc50c6faa3e8e48ab8f889a02cd79
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Fri, 6 Mar 2020 07:33:55 +0000 (16:33 +0900)]
test: add a new parameter for tensor data type
This patch passes tensor data type to each test case as a parameter
to test various model types such as quantization model.
Change-Id: I251813a857ad832cdc55f90996eec3f16b64fc82
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Fri, 6 Mar 2020 07:23:58 +0000 (16:23 +0900)]
test: set user-given property information
This patch sets user-given property information, which is required
by OpenCV backend which cannot provide input layer property
information.
Change-Id: Ifdaeafecdbe73a946e3ace9b7e8382170b30d74a
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Thu, 5 Mar 2020 04:24:12 +0000 (13:24 +0900)]
test: clear owner_is_backend in case of using user-allocated tensor buffers
If user allocates the tensor buffers then clear owner_is_backend
so that user can also release the buffers.
Change-Id: Ie06199fd0a8bc5dde0c73648e43f1fd000526093
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Thu, 5 Mar 2020 03:49:38 +0000 (12:49 +0900)]
test: skip to release tensor buffer if owner_is_backend is 1
Change-Id: Ida9e0f6abb569d21978790961b96a62e30995242
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Thu, 5 Mar 2020 03:46:54 +0000 (12:46 +0900)]
Add owner_is_backend member for checking buffer ownership
This patch adds a new member, owner_is_backend, to
inference_engine_tensor_buffer structure, which
is used to check if a backend should release
tensor buffer or not.
If owner_is_backend is set to 1 then upper framework,
Inference framework in case of Tizen, will not release
the tensor buffer.
Change-Id: I9db254daeb84fd4bc71123acaf6295fbf47d53f8
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Thu, 5 Mar 2020 01:25:21 +0000 (10:25 +0900)]
test: Release tensor buffers after inference
Change-Id: I27cfdd2ae2a9d1ee97c60c3211e309e26334399e
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Wed, 4 Mar 2020 10:05:33 +0000 (19:05 +0900)]
packaging: Pack resource files for the inference verification
Change-Id: Ie697b3951ac3061ad8f5a7a584b10217ac4bcf4a
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Wed, 4 Mar 2020 10:05:05 +0000 (19:05 +0900)]
test: Add resource files for the inference verification
Change-Id: I421a87f28f37d57bf90ccb80a4821a741804912a
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Wed, 4 Mar 2020 10:00:42 +0000 (19:00 +0900)]
test: Add inference result verification support
This patch implements inference verification to each inference
test - image classification, object/face detection and pose estimation.
As for the verification, it uses pre-dumped file which contains
in-memory tensor buffer in bytes to a given sample image file,
and uses pre-calculated inference result for the verification.
Change-Id: I46342f832a59361165b54d5357c4653c5acad566
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Wed, 4 Mar 2020 04:16:35 +0000 (13:16 +0900)]
Add size member to inference_engine_tensor_buffer structure
With this patch, the size member of inference_engine_tensor_info
structure means a tensor element size which is calculated by
height * width * channel count, and the size member of
inference_engine_tensor_buffer structure means a actual tensor
buffer size in bytes which is calculated by height * width * channel count
* pixel per bytes.
Change-Id: Ic88e34035c45386fa712e7ab922a296a4bad0ac9
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Wed, 4 Mar 2020 03:27:44 +0000 (12:27 +0900)]
Update description of inference_engine_tensor_info structure
Change-Id: Ibd70368f453a9dea5eb5ab85c2730789428a555f
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Wed, 4 Mar 2020 02:00:43 +0000 (11:00 +0900)]
packaging: Add build requires for test app
Change-Id: Ia7ad20ddef7514674bb87d85fa2dd371309cdc09
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Tue, 3 Mar 2020 00:54:20 +0000 (09:54 +0900)]
test: Print out test information
Change-Id: Ic95b8093d10b7a782ad56ac86389919b4d1775c7
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Tue, 3 Mar 2020 00:49:06 +0000 (09:49 +0900)]
test: drop unnecessary logs
Change-Id: I017901ed87544578e87aa214d2268ef1d60d2c99
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Tue, 3 Mar 2020 00:41:39 +0000 (09:41 +0900)]
test: Add inference test for armnn backend
Change-Id: I2da5f3676a9286c4ac5f07d181627e15d5f0caba
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Mon, 2 Mar 2020 03:29:10 +0000 (12:29 +0900)]
test: Add model loading test
Change-Id: Id4e41a5449bdfc72e50bf1c16d9a6c65c4433c17
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Mon, 2 Mar 2020 00:54:25 +0000 (09:54 +0900)]
test: Test GetBackendCapacity callback
Change-Id: Ic75161ab46f7ac8de682233e235c15956e90e0a2
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Fri, 28 Feb 2020 07:10:43 +0000 (16:10 +0900)]
packaging: Pack test application
Change-Id: I0d08acc3f058816876d382771d6be4df6161c544
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Fri, 28 Feb 2020 07:09:19 +0000 (16:09 +0900)]
test: Add initial inference-engine-interface test code
This patch adds google test based test code for interface-engine-interface
API verification.
Change-Id: I6dd69f4a6d1e498f92f5b908920e9603f3e1eb1c
Signed-off-by: Inki Dae <inki.dae@samsung.com>